v2로 업그레이드

Azure Machine Learning의 v2 REST API, Azure CLI 확장 및 Python SDK는 일관성과 프로덕션 기계 학습 수명 주기를 가속화하는 새로운 기능 세트를 도입합니다. 이 문서에서는 v1, v2 또는 둘 다를 결정하는 데 도움이 되는 권장 사항을 통해 v2로 업그레이드하는 방법을 간략하게 설명합니다.

필수 조건

  • Azure Machine Learning 및 v1 Python SDK에 대한 일반적인 지식
  • v2 정의 이해

v2를 사용해야 하나요?

새 기계 학습 프로젝트 또는 워크플로를 시작하는 경우 v2를 사용해야 합니다. v2에서 제공되는 새 기능을 사용하려면 v2를 사용해야 합니다. 기능은 다음과 같습니다.

  • 관리되는 추론
  • 파이프라인의 재사용 가능한 구성 요소
  • 파이프라인 예약 개선
  • 책임 있는 AI 대시보드
  • 자산 레지스트리

새 v2 프로젝트는 v1을 사용하여 만든 모델 및 환경과 같은 작업 영역, 컴퓨팅 및 기존 자산과 같은 기존 v1 리소스를 다시 사용할 수 있습니다.

v2의 일부 기능 격차는 다음과 같습니다.

  • 작업에서 Spark 지원 - 현재 v2에서 미리 보기로 제공됩니다.
  • 작업(v1의 파이프라인)을 엔드포인트로 게시합니다. 그러나 게시하지 않고 파이프라인을 예약할 수 있습니다.
  • SQL/데이터베이스 데이터 저장소에 대한 지원.
  • v2를 사용하여 디자이너에서 미리 빌드된 클래식 구성 요소를 사용할 수 있습니다.

그런 다음, v2에 필요한 기능이 일반 공급되는 등 조직의 요구 사항을 충족하는지 확인해야 합니다.

Important

Azure Machine Learning의 새로운 기능은 v2에서만 시작됩니다.

어떤 v2 API를 사용해야 하나요?

REST API, CLI 및 Python SDK(미리 보기)를 통한 v2 인터페이스에서 사용할 수 있습니다. 사용해야 하는 인터페이스는 시나리오 및 기본 설정에 따라 달라집니다.

API 주의
REST (영문) 종속성 및 오버헤드가 가장 적습니다. Azure Machine Learning에서 플랫폼으로 애플리케이션을 빌드하거나, SDK가 제공되지 않은 프로그래밍 언어에서 직접 또는 개인 기본 설정에 따라 애플리케이션을 빌드하는 데 사용합니다.
CLI CI/CD 또는 개인 기본 설정별 자동화에 권장됩니다. YAML 파일을 사용하여 빠르게 반복하고 Azure Machine Learning과 ML 모델 코드를 간단하게 분리할 수 있습니다.
Python SDK 복잡한 스크립팅(예: 프로그래밍 방식으로 대규모 파이프라인 작업 생성) 또는 개인 기본 설정에 권장됩니다. YAML 파일을 사용하여 빠르게 반복하거나 Python에서만 개발할 수 있습니다.

Python SDK v1과 v2 매핑

SDK v1 및 v2에 대한 비교 코드 매핑은 다음 문서 각각을 참조하세요.

리소스 및 자산 문서
작업 영역 SDK v1 및 SDK v2의 작업 영역 관리
데이터 저장소 SDK v1 및 SDK v2의 데이터 저장소 관리
데이터 SDK v1 및 v2의 데이터 자산
컴퓨팅 SDK v1 및 SDK v2의 컴퓨팅 관리
학습 스크립트 실행
학습 로컬 실행
학습 하이퍼 매개 변수 튜닝
학습 병렬 실행
학습 파이프라인
학습 AutoML
모델 SDK v1 및 SDK v2의 모델 관리
배포 배포 엔드포인트를 SDK v2로 업그레이드

v1 및 v2의 리소스 및 자산

이 섹션에서는 Azure Machine Learning의 특정 리소스와 자산에 대한 개요를 제공합니다. v2에서의 사용량에 대한 자세한 내용은 각 엔터티에 대한 개념 문서를 참조하세요.

작업 영역

v2를 사용하여 작업 영역을 업그레이드할 필요가 없습니다. v1 또는 v2를 사용하든 관계없이 동일한 작업 영역을 사용할 수 있습니다.

자동화를 사용하여 작업 영역을 만드는 경우 작업 영역을 만들기 위한 코드를 v2로 업그레이드하는 것이 좋습니다. 일반적으로 Azure 리소스는 Azure Resource Manager(및 Bicep) 또는 유사한 리소스 프로비저닝 도구를 통해 관리됩니다. 또는 CLI(v2) 및 YAML 파일을 사용할 수 있습니다.

SDK v1 및 v2 코드를 비교하려면 SDK v1 및 SDK v2의 작업 영역 관리를 참조하세요.

Important

작업 영역에서 프라이빗 엔드포인트를 사용하는 경우 자동으로 v1_legacy_mode 플래그를 사용하도록 설정하여 v2 API 사용을 방지합니다. 자세한 내용은 v2를 사용하여 네트워크 격리를 구성하는 방법을 참조하세요.

연결(v1의 작업 영역 연결)

v1의 작업 영역 연결은 작업 영역에 유지되며 v2에서 완전히 사용할 수 있습니다.

SDK v1 및 v2 코드를 비교하려면 SDK v1 및 SDK v2의 작업 영역 관리를 참조하세요.

데이터 저장소

v1을 사용하여 만든 개체 스토리지 데이터 저장소 형식은 v2에서 완전히 사용할 수 있습니다. 데이터베이스 데이터 저장소는 지원되지 않습니다. 개체 스토리지(일반적으로 Azure Blob)로 내보내는 것이 권장되는 마이그레이션 경로입니다.

SDK v1 및 v2 코드를 비교하려면 SDK v1 및 SDK v2의 데이터스토어 관리를 참조하세요.

데이터(v1의 데이터 세트)

데이터 세트의 이름이 데이터 자산으로 바뀝니다. 이전 버전과의 호환성이 제공되므로 V2에서 V1 데이터 세트를 사용할 수 있습니다. V2 작업에서 V1 데이터 세트를 사용하는 경우 다음과 같이 V2 형식에 자동으로 매핑됩니다.

  • V1 FileDataset = V2 Folder(uri_folder)
  • V1 TabularDataset = V2 Table(mltable)

이후 버전과의 호환성이 제공되지 않으므로 V1에서 V2 데이터 자산을 사용할 수 없습니다.

이 문서에서는 v2의 데이터 처리 - 작업에서 데이터 읽기 및 쓰기에 대해 자세히 설명합니다.

SDK v1 및 v2 코드를 비교하려면 SDK v1 및 v2의 데이터 자산을 참조하세요.

컴퓨팅

AmlComputeComputeInstance 형식의 컴퓨팅은 v2에서 완전히 사용할 수 있습니다.

SDK v1 및 v2 코드를 비교하려면 SDK v1 및 SDK v2의 컴퓨팅 관리를 참조하세요.

작업(v1의 실험, 실행, 파이프라인)

v2에서는 "실험", "실행" 및 "파이프라인"이 작업으로 통합됩니다. 작업에는 형식이 있습니다. 대부분의 작업은 python main.py와 같이 명령을 실행하는 command 작업입니다. 작업에서 실행되는 것은 모든 프로그래밍 언어에 독립적이므로 bash 스크립트를 실행하고, python 인터프리터를 호출하고, 많은 curl 명령을 실행하는 등의 작업을 실행할 수 있습니다. 또 다른 일반적인 작업 유형은 입력/출력 관계가 있을 수 있는 자식 작업을 정의하여 DAG(방향성 비순환 그래프)를 형성하는 pipeline입니다.

SDK v1 및 v2 코드를 비교하려면 다음을 참조하세요.

Designer

디자이너를 사용하여 고유한 v2 사용자 지정 구성 요소와 레지스트리에서 미리 빌드된 새 구성 요소를 통해 파이프라인을 빌드할 수 있습니다. 이 경우 파이프라인에서 v1 또는 v2 데이터 자산을 사용할 수 있습니다.

계속 디자이너를 사용하여 미리 빌드된 클래식 구성 요소 및 v1 데이터 세트 형식(테이블 형식, 파일)을 통해 파이프라인을 빌드할 수 있습니다. v2 데이터 자산에는 기존 디자이너 클래식의 미리 빌드된 구성 요소를 사용할 수 없습니다.

기존 디자이너 클래식의 미리 빌드된 구성 요소와 v2 사용자 지정 구성 요소를 모두 사용하여 파이프라인을 빌드할 수 없습니다.

모델

v1에서 만든 모델은 v2에서 사용할 수 있습니다.

SDK v1 및 v2 코드를 비교하려면 SDK v1 및 SDK v2의 모델 관리를 참조하세요.

엔드포인트 및 배포(v1의 엔드포인트 또는 웹 서비스)

SDK/CLI v1을 사용하면 ACI 또는 AKS에 모델을 웹 서비스로 배포할 수 있습니다. 기존 v1 모델 배포 및 웹 서비스는 그대로 계속 작동하지만 SDK/CLI v1을 사용하여 ACI 또는 AKS에 모델을 웹 서비스로 배포하면 이제 레거시로 간주됩니다. 새 모델 배포 시 v2로 업그레이드하는 것이 좋습니다. v2에서는 관리 엔드포인트 또는 Kubernetes 엔드포인트를 제공합니다. 다음 표에서는 권장 사항을 안내합니다.

v2의 엔드포인트 유형 다음 버전에서 업그레이드 주의
로컬 ACI 프로덕션용이 아닌 로컬로 모델 배포를 빠르게 테스트합니다.
관리되는 온라인 엔드포인트 ACI, AKS 거의 실시간으로 응답하고 프로덕션을 위한 대규모 스케일링을 갖춘 엔터프라이즈급 관리형 모델 배포 인프라입니다.
관리되는 일괄 처리 엔드포인트 일괄 처리 채점을 위한 파이프라인의 ParallelRunStep 프로덕션을 위한 대규모 병렬 일괄 처리를 사용하는 엔터프라이즈급 관리형 모델 배포 인프라입니다.
AKS(Azure Kubernetes Service) ACI, AKS 모델 배포를 위해 자체 AKS 클러스터를 관리하여 IT 오버헤드의 비용으로 유연성과 세분화된 제어를 제공합니다.
Azure Arc Kubernetes 해당 없음 다른 클라우드 또는 온-프레미스에서 자체 Kubernetes 클러스터를 관리하여 IT 오버헤드의 비용으로 유연성과 세분화된 제어를 제공합니다.

SDK v1 및 v2 코드를 비교하려면 배포 엔드포인트를 SDK v2로 업그레이드를 참조하세요. 기존 ACI 웹 서비스에서 관리되는 온라인 엔드포인트로의 마이그레이션 단계는 업그레이드 가이드 문서블로그를 참조하세요.

환경

v1에서 만든 환경은 v2에서 사용할 수 있습니다. v2에서 환경에는 로컬 Docker 컨텍스트에서 만드는 것과 같은 새로운 기능이 있습니다.

암호 관리

Key Vault 비밀 관리는 V2에서 V1과 크게 다릅니다. V1 set_secret 및 get_secret SDK 메서드는 V2에서 사용할 수 없습니다. 대신 Key Vault 클라이언트 라이브러리를 사용하여 직접 액세스해야 합니다.

Key Vault에 대한 상세 정보는 Azure Machine Learning 학습 작업에서 인증 자격 증명 비밀 사용을 참조하세요.

기계 학습 수명 주기 전반의 시나리오

Azure Machine Learning을 사용하는 기계 학습 수명 주기 전반에 걸쳐 일반적인 시나리오가 몇 가지 있습니다. 몇 가지를 살펴보고 v2로 업그레이드하기 위한 일반적인 권장 사항을 제공합니다.

Azure 설정

Azure는 리소스를 생성하기 위해 Azure Resource Manager 템플릿(일반적으로 사용 편의를 위해 Bicep을 통해)을 권장합니다. Azure Machine Learning 리소스를 만드는 데에도 동일한 접근 방식이 좋습니다.

팀에서 Azure Machine Learning만 사용하는 경우, 대신 YAML 파일과 CLI를 통해 작업 영역 및 기타 리소스를 프로비전하는 것을 고려해 볼 수 있습니다.

프로토타이핑 모델

프로토타이핑 모델에 v2를 사용하는 것이 좋습니다. 모델 학습 코드는 Python 또는 기타 프로그래밍 언어이지만 Azure Machine Learning을 대화형으로 사용하기 위해서는 CLI를 사용하는 것을 고려해 볼 수 있습니다. 또는 Azure Machine Learning SDK만 사용하거나 Azure Machine Learning Python SDK 및 YAML 파일과 혼합된 접근 방식을 통해 Python을 사용하는 전체 스택 접근 방식을 채택할 수 있습니다.

프로덕션 모델 학습

프로덕션 모델 학습에는 v2를 사용하는 것이 좋습니다. 작업은 용어를 통합하고 형식 간(예: command에서 sweep로)과 및 작업을 YAML 파일로 직렬화하기 위한 GitOps 친화적인 프로세스 간에 보다 쉽게 전환할 수 있는 일관성 세트를 제공합니다.

v2를 사용하면 기계 학습 코드를 컨트롤 플레인 코드와 분리해야 합니다. 이렇게 분리하면 반복이 더 쉬워지고 로컬과 클라우드 간에 더 쉽게 전환할 수 있습니다. 또한 추적 및 모델 로깅에 MLflow를 사용하는 것이 좋습니다. 자세한 내용은 MLflow 개념 문서를 참조하세요.

프로덕션 모델 배포

프로덕션 모델 배포에는 v2를 사용하는 것이 좋습니다. 관리형 엔드포인트는 IT 오버헤드를 추상화하고 온라인(거의 실시간) 및 일괄 처리(대규모 병렬) 시나리오 모두에 대해 모델을 배포 및 채점하기 위한 고성능 솔루션을 제공합니다.

Kubernetes 배포는 AKS 또는 Azure Arc를 통해 v2에서 지원되며, 조직에서 관리하는 Azure 클라우드 및 온-프레미스 배포를 지원합니다.

MLOps(Machine Learning Operations)

MLOps 워크플로에는 일반적으로 외부 도구를 통한 CI/CD가 포함됩니다. 일반적으로 CLI는 CI/CD에서 사용되지만 Python을 호출하거나 REST를 직접 사용할 수도 있습니다.

v2를 사용하는 MLOps용 솔루션 가속기는 https://github.com/Azure/mlops-v2에서 개발 중이며 기계 학습 수명 주기의 설정 및 자동화를 위해 참조로 사용되거나 채택될 수 있습니다.

v2를 사용하는 GitOps에 대한 참고 사항

v2의 주요 패러다임은 기계 학습 엔터티를 git로 소스 제어를 위한 YAML 파일로 직렬화하여 v1보다 더 나은 GitOps 접근 방식을 가능하게 하는 것입니다. 예를 들어 CI/CD 파이프라인에서 사용되는 서비스 주체만 일부 또는 모든 엔터티를 생성/업데이트/삭제할 수 있는 정책을 적용하여 변경 내용이 필요한 검토자가 있는 끌어오기 요청과 같은 관리되는 프로세스를 거치도록 할 수 있습니다. 소스 제어의 파일은 YAML이므로 시간 경과에 따른 변경 내용을 쉽게 디프팅하고 추적할 수 있습니다. 사용자와 팀은 v2로 업그레이드할 때 이 패러다임으로 전환하는 것을 고려해 볼 수 있습니다.

az ml <entity> show --output yaml을 통해 CLI로 엔터티의 YAML 표현을 가져올 수 있습니다. 이 출력에는 무시하거나 삭제할 수 있는 시스템 생성 속성이 있습니다.

기존 v1 코드를 v2로 업그레이드해야 합니다.

v2 워크플로에서 기존 v1 자산을 다시 사용할 수 있습니다. 예를 들어 v1에서 만든 모델을 사용하여 v2에서 관리되는 추론을 수행할 수 있습니다.

필요에 따라 기존 v1 코드의 특정 부분을 v2로 업그레이드하려면 이 문서에 제공된 비교 링크를 참조하세요.

v1과 v2를 함께 사용할 수 있나요?

v1 및 v2는 작업 영역에 공존할 수 있습니다. v2 워크플로에서 기존 자산을 다시 사용할 수 있습니다. 예를 들어 v1에서 만든 모델을 사용하여 v2에서 관리되는 추론을 수행할 수 있습니다. 작업 영역, 컴퓨팅 및 데이터 저장소와 같은 리소스는 예외를 제외하고 v1 및 v2에서 작동합니다. 사용자는 v1 Python SDK를 호출하여 작업 영역의 설명을 변경한 다음, v2 CLI 확장을 사용하여 다시 변경할 수 있습니다. 작업(v1의 실험/실행/파이프라인)은 v1 또는 v2 Python SDK에서 동일한 작업 영역으로 제출할 수 있습니다. 작업 영역에는 v1 및 v2 모델 배포 엔드포인트가 모두 있을 수 있습니다.

v1 및 v2 코드 함께 사용

동일한 코드에서 v1 및 v2 SDK를 함께 사용하지 않는 것이 좋습니다. 다른 Azure 네임스페이스를 사용하기 때문에 동일한 코드에서 v1 및 v2를 사용하는 것이 불가능하지는 않습니다. 그러나 이러한 네임스페이스(예: 작업 영역, 모델)에 동일한 이름을 가진 많은 클래스가 있어 혼동을 일으키고 코드 가독성과 디버깅을 어렵게 만들 수 있습니다.

Important

작업 영역에서 프라이빗 엔드포인트를 사용하는 경우 자동으로 v1_legacy_mode 플래그를 사용하도록 설정하여 v2 API 사용을 방지합니다. 자세한 내용은 v2를 사용하여 네트워크 격리를 구성하는 방법을 참조하세요.

다음 단계