다음을 통해 공유


Azure Machine Learning에 대한 Azure Well-Architected Framework 관점

Azure Machine Learning은 기계 학습 모델을 학습, 배포 및 관리하는 데 사용할 수 있는 관리형 클라우드 서비스입니다. 컴퓨팅 SKU 및 구성을 포함하여 모델 학습 및 배포를 위한 다양한 선택 사항과 구성이 있습니다. Machine Learning 컴퓨팅 또는 AKS(Azure Kubernetes Service)와 같은 다른 Azure 서비스에 Machine Learning 모델을 배포할 수 있습니다.

이 문서에서는 Machine Learning을 사용하여 기계 학습 모델을 학습, 배포 및 관리할 때 정보에 입각한 결정을 내리기 위한 아키텍처 권장 사항을 제공합니다. 이 지침은 Azure Well-Architected Framework 핵심 요소에 기반합니다.

중요

이 가이드를 사용하는 방법

각 섹션에는 기술 scope 지역화된 디자인 전략과 함께 관심 있는 아키텍처 영역을 제공하는 디자인 검사 목록이 있습니다.

또한 이러한 전략을 구체화하는 데 도움이 될 수 있는 기술 기능에 대한 권장 사항 도 포함되어 있습니다. 권장 사항은 Machine Learning 및 해당 종속성에 사용할 수 있는 모든 구성의 전체 목록을 나타내지 않습니다. 대신 디자인 관점에 매핑된 주요 권장 사항을 나열합니다. 권장 사항을 사용하여 개념 증명을 빌드하거나 기존 환경을 최적화합니다.

기본 아키텍처 기준 OpenAI 엔드 투 엔드 채팅 참조 아키텍처 는 많은 주요 권장 사항을 보여 줍니다.

기술 scope

이 검토는 다음 Azure 리소스에 대한 상호 연관된 결정에 중점을 둡니다.

  • Machine Learning
  • Machine Learning 컴퓨팅 클러스터
  • Machine Learning 컴퓨팅 인스턴스

검토는 데이터 저장소 또는 Azure Key Vault 같은 연결된 리소스를 다루지 않습니다.

안정성

안정성 핵심 요소의 목적은 충분한 복원력과 오류로부터 빠르게 복구할 수 있는 기능을 구축하여 지속적인 기능을 제공하는 것입니다.

안정성 디자인 원칙은 개별 구성 요소, 시스템 흐름 및 시스템 전체에 적용되는 개략적인 디자인 전략을 제공합니다.

디자인 검사 목록

안정성에 대한 디자인 검토 검사 목록을 기반으로 디자인 전략을 시작하고 비즈니스 요구 사항과 관련성을 결정합니다. 필요에 따라 더 많은 접근 방식을 포함하도록 전략을 확장합니다.

  • 복원력: AKS와 같은 가용성 영역을 지원하는 환경에 모델을 배포합니다. 배포가 가용성 영역에 분산되도록 하여 데이터 센터 오류가 발생하는 경우에도 배포를 사용할 수 있도록 합니다. 향상된 안정성 및 가용성을 위해 다중 지역 배포 토폴로지를 고려합니다.

  • 복원력: 학습 및 추론 모두에 충분한 컴퓨팅이 있는지 확인합니다. 리소스 계획을 통해 컴퓨팅 SKU 및 크기 조정 설정이 워크로드의 요구 사항을 충족하는지 확인합니다.

  • 복원력: 예비 작업에 사용되는 Machine Learning 작업 영역을 프로덕션에 사용되는 작업 영역과 분리합니다.

  • 복원력: 추론에 관리형 온라인 엔드포인트를 사용하는 경우 파란색-녹색 배포와 같은 릴리스 전략을 사용하여 가동 중지 시간을 최소화하고 새 버전 배포와 관련된 위험을 줄입니다.

  • 비즈니스 요구 사항: SLA(서비스 수준 계약)를 요소로 고려하여 안정성 요구 사항에 따라 컴퓨팅 클러스터, 컴퓨팅 인스턴스 및 외부화된 유추 호스트 사용을 선택합니다.

  • 복구: 대규모 모델을 학습할 때 Machine Learning에서 지원하는 검사점 기능과 같은 자체 복구 기능이 있는지 확인합니다.

  • 복구: 복구 전략이 정의되었는지 확인합니다. Machine Learning에는 자동 장애 조치(failover)가 없습니다. 따라서 작업 영역 및 모든 종속성(예: Key Vault, Azure Storage 및 Azure Container Registry)을 포괄하는 전략을 설계해야 합니다.

권장 사항
권장 이점
다중 지역 모델 배포: 안정성 및 가용성 향상을 위해 가능한 경우 다중 지역 배포 환경을 고려합니다. 다중 지역 배포를 사용하면 한 지역에서 중단이 발생하더라도 Machine Learning 워크로드가 계속 실행됩니다. 다중 지역 배포는 지역 간 부하 분산을 개선하여 잠재적으로 다른 지리적 영역에 있는 사용자의 성능을 향상시킵니다. 자세한 내용은 비즈니스 연속성 및 재해 복구 장애 조치(failover)를 참조하세요.
모델 학습 복원력: Azure Container for PyTorch, TensorFlow Estimator 클래스 또는 Run 개체 및 모델 검사점 지정을 지원하는 FileDataset 클래스를 포함하여 Machine Learning에서 지원하는 검사점 기능을 사용합니다. 모델 검사점은 학습 중에 기계 학습 모델의 상태를 주기적으로 저장하므로 중단, 실패 또는 종료 시 복원할 수 있습니다. 자세한 내용은 Nebula를 사용하여 검사점 속도 향상 및 비용 절감을 참조하세요.
컴퓨팅 클러스터에 전용 가상 머신 계층 사용: 일괄 처리 유추를 위해 컴퓨팅 클러스터에 전용 가상 머신 계층을 사용하여 일괄 처리 작업이 선점되지 않도록 합니다. 우선 순위가 낮은 가상 머신은 가격이 낮지만 선점할 수 있습니다. 전용 가상 머신 계층을 사용하는 클러스터는 선점되지 않습니다.

보안

보안 핵심 요소의 목적은 워크로드에 기밀성, 무결성 및 가용성 보장을 제공하는 것입니다.

보안 디자인 원칙은 Machine Learning을 중심으로 기술 디자인에 접근 방식을 적용하여 이러한 목표를 달성하기 위한 높은 수준의 디자인 전략을 제공합니다.

디자인 검사 목록

보안에 대한 디자인 검토 검사 목록을 기반으로 디자인 전략을 시작하고 취약성 및 컨트롤을 식별하여 보안 상태를 개선합니다. 필요에 따라 더 많은 접근 방식을 포함하도록 전략을 확장합니다.

  • 가용성: 작업 영역에 대한 액세스를 가상 네트워크 내의 리소스로 제한하여 Machine Learning 작업 영역의 공격 표면을 줄입니다.

  • 기밀성: 네트워크 격리를 구현하여 Machine Learning 작업 영역에서 데이터 반출을 방지합니다. 모든 외부 리소스에 대한 액세스가 명시적으로 승인되고 다른 모든 외부 리소스에 대한 액세스가 허용되지 않는지 확인합니다.

  • 무결성: 최소 권한 원칙에 따라 외부 리소스에 대한 Machine Learning 작업 영역을 인증하고 권한을 부여하는 액세스 제어를 구현합니다.

  • 무결성: 특정 사용 사례 또는 프로젝트에 따라 작업 영역을 설정하여 Machine Learning 작업 영역에 대한 사용 사례 분리를 구현합니다. 이 방법은 사용 사례 또는 프로젝트의 데이터 및 실험 자산에 액세스해야 하는 개인만 작업 영역에 액세스할 수 있도록 하여 최소 권한 원칙을 준수합니다.

  • 무결성: 기본 모델에 대한 액세스를 규제합니다. 승인된 레지스트리만 모델 레지스트리의 모델에 액세스할 수 있는지 확인합니다.

  • 무결성: 승인된 컨테이너 레지스트리에 대한 액세스를 규제합니다. Machine Learning 컴퓨팅이 승인된 레지스트리에만 액세스할 수 있는지 확인합니다.

  • 무결성: Machine Learning 컴퓨팅에서 실행할 수 있는 Python 패키지를 규제합니다. Python 패키지를 규제하면 신뢰할 수 있는 패키지만 실행됩니다.

  • 무결성: Machine Learning 컴퓨팅 환경에서 학습하는 데 사용되는 코드에 서명해야 합니다. 코드 서명을 요구하면 실행 중인 코드가 신뢰할 수 있는 원본에서 온 것이며 변조되지 않았는지 확인합니다.

  • 기밀성: RBAC(역할 기반 액세스 제어)에 대한 최소 권한 원칙을 준수하여 Machine Learning 작업 영역 및 작업 영역 스토리지 계정과 같은 관련 리소스를 준수하여 개인이 역할에 필요한 권한만 갖도록 하여 잠재적인 보안 위험을 최소화합니다.

  • 무결성: 미사용 데이터 및 전송 중인 데이터에 대한 암호화를 구현하여 신뢰 및 확인된 액세스를 설정합니다.

권장 사항
권장 이점
보안 기준: Machine Learning Service의 보안 및 규정 준수를 향상하려면 Machine Learning에 대한 Azure 보안 기준을 적용합니다. 보안 기준은 네트워크 보안, ID 관리, 데이터 보호 및 권한 있는 액세스와 같은 중요한 보안 측면에 대한 맞춤형 지침을 제공합니다. 최적의 보안을 위해 클라우드용 Microsoft Defender 사용하여 이러한 측면을 모니터링합니다.
관리형 가상 네트워크 격리: Machine Learning에 대한 관리형 가상 네트워크 격리 를 구성합니다. 관리형 가상 네트워크 격리를 사용하도록 설정하면 작업 영역에 대한 관리형 가상 네트워크가 만들어집니다. 작업 영역에 대해 만드는 관리형 컴퓨팅 리소스는 이 관리형 가상 네트워크를 자동으로 사용합니다. 관리형 가상 네트워크 격리를 구현할 수 없는 경우 네트워크 토폴로지 권장 사항에 따라 컴퓨팅을 작업 영역 리소스에 대한 프라이빗 엔드포인트를 포함하여 솔루션의 나머지 리소스에서 떨어진 전용 서브넷으로 분리해야 합니다. 관리형 가상 네트워크 격리는 작업 영역을 다른 네트워크와 격리하여 보안을 강화하여 무단 액세스의 위험을 줄입니다. organization 내의 다른 네트워크에서 위반이 발생하는 시나리오에서는 Machine Learning 작업 영역의 격리된 네트워크가 영향을 받지 않고 기계 학습 워크로드를 보호합니다.
Machine Learning 네트워크 격리: Machine Learning 작업 영역에 대한 프라이빗 엔드포인트를 구성 하고 해당 프라이빗 엔드포인트를 통해 작업 영역에 연결합니다. Machine Learning 네트워크 격리는 작업 영역에 대한 액세스가 안전하고 제어되도록 하여 보안을 강화합니다. 작업 영역에 대해 구성된 프라이빗 엔드포인트를 사용하면 개인 IP 주소를 통해서만 작업 영역에 대한 액세스를 제한할 수 있습니다.
승인된 아웃바운드 액세스만 허용: Machine Learning 작업 영역에서 아웃바운드 모드를 구성 하여 데이터 반출 위험을 최소화하도록 Allow only approved outbound 아웃바운드 액세스를 관리합니다. 액세스해야 하는 리소스에 대해 프라이빗 엔드포인트, 서비스 태그 또는 FQDN(정규화된 도메인 이름)을 구성합니다. 이 구성은 데이터 반출 위험을 최소화하여 데이터 보안을 개선합니다. 이 구성을 사용하도록 설정하면 시스템에 대한 액세스 권한을 얻는 악의적인 행위자가 승인되지 않은 외부 대상으로 데이터를 보낼 수 없습니다.
종속 서비스에 대한 가상 네트워크 격리: 프라이빗 엔드포인트를 사용하여 Storage, Key Vault 및 Container Registry와 같은 종속 서비스를 구성하고 공용 액세스를 사용하지 않도록 설정합니다. 네트워크 격리는 Azure PaaS(Platform as a Service) 솔루션에 대한 액세스를 개인 IP 주소로만 제한하여 보안을 강화합니다.
관리 ID: Machine Learning과 다른 서비스 간의 인증에 관리 ID를 사용합니다 . 관리 ID는 자격 증명을 저장하고 서비스 주체를 수동으로 관리하고 회전할 필요가 없도록 하여 보안을 향상시킵니다.
로컬 인증 사용 안 함: Machine Learning 컴퓨팅 클러스터 및 인스턴스에 대한 로컬 인증을 사용하지 않도록 설정합니다 . 로컬 인증을 사용하지 않도록 설정하면 Machine Learning 컴퓨팅의 보안이 강화되고 ID 및 리소스 자격 증명의 중앙 집중식 제어 및 관리가 제공됩니다.
공용 SSH 포트 사용 안 함: 를 로 설정 remoteLoginPortPublicAccessDisabled하여 Machine Learning 컴퓨팅 클러스터에서 공용 SSH(Secure Shell) 포트가 닫혀 있는지 확인합니다. 다른 컴퓨팅을 사용하는 경우 유사한 구성을 적용합니다. SSH 액세스를 사용하지 않도록 설정하면 권한이 없는 개인이 액세스 권한을 얻고 시스템에 잠재적으로 피해를 주는 것을 방지하고 무차별 암호 대입 공격으로부터 보호합니다.
Machine Learning 컴퓨팅에 대한 공용 IP 주소 프로비전 안 함: Machine Learning 컴퓨팅 클러스터 또는 컴퓨팅 인스턴스를 프로비전할 falseenableNodePublicIp를 로 설정합니다. 다른 컴퓨팅을 사용하는 경우 유사한 구성을 적용합니다. 컴퓨팅 instance 또는 클러스터에 대한 무단 액세스 가능성을 제한하여 보안을 강화하기 위해 공용 IP 주소를 프로비전하지 않습니다.
최신 운영 체제 이미지 가져오기: 컴퓨팅 인스턴스를 다시 만들어 최신 운영 체제 이미지를 가져옵니다. 최신 이미지를 사용하면 최신 보안 패치가 있는지 확인하는 것을 포함하여 일관되고 안정적이며 안전한 환경을 유지할 수 있습니다.
엄격한 Machine Learning 작업 영역 액세스 제어: Microsoft Entra ID 그룹을 사용하여 작업 영역 액세스를 관리하고 RBAC에 대한 최소 권한 원칙을 준수합니다. 엄격한 작업 영역 액세스 제어는 개인이 자신의 역할에 필요한 권한만 갖도록 하여 보안을 강화합니다. 데이터 과학자는 instance 위해 실험을 실행할 수 있지만 보안 설정을 수정할 수 없으므로 잠재적인 보안 위험을 최소화할 수 있습니다.
모델 카탈로그 배포 제한: 모델 배포를 특정 레지스트리로 제한합니다. 모델 카탈로그의 배포를 특정 레지스트리로 제한하면 승인된 레지스트리에만 모델을 배포할 수 있습니다. 이 방법은 오픈 소스 기본 모델에 대한 액세스를 규제하는 데 도움이 됩니다.
미사용 데이터 암호화: Machine Learning에서 고객 관리형 키를 사용하는 것이 좋습니다. 미사용 데이터를 암호화하면 사용자가 직접 관리하는 키를 사용하여 중요한 데이터가 암호화되도록 하여 데이터 보안을 강화합니다. 자체 암호화 키를 관리하기 위한 규정 요구 사항이 있는 경우 이 기능을 사용하여 해당 요구 사항을 준수합니다.
데이터 반출 위험 최소화: 데이터출 방지를 구현합니다. 예를 들어 송신 가상 네트워크 트래픽을 필터링하고 특정 Azure Storage 계정에만 데이터 반출을 허용하는 서비스 엔드포인트 정책을 만듭니다. 인바운드 및 아웃바운드 요구 사항을 제한하여 데이터 반출 위험을 최소화합니다.
Advisor

다음은 Machine Learning에 대한 Advisor 보안 모범 사례 권장 사항의 몇 가지 예입니다.

  • 작업 영역은 CMK(고객 관리형 키)로 암호화해야 합니다.
  • 작업 영역에서는 Azure Private Link 사용해야 합니다.
  • 작업 영역에서는 공용 네트워크 액세스를 사용하지 않도록 설정해야 합니다.
  • 컴퓨팅은 가상 네트워크에 있어야 합니다.
  • 최신 소프트웨어 업데이트를 받으려면 컴퓨팅 인스턴스를 다시 만들어야 합니다.
Azure Policy

다음은 Machine Learning 보안을 위한 기본 제공 Azure Policy 정의의 예입니다.

비용 최적화

비용 최적화는 지출 패턴을 감지하고, 중요한 영역에 대한 투자의 우선 순위를 지정하고, 비즈니스 요구 사항을 충족하면서 organization 예산을 충족하도록 다른 영역에서 최적화하는 데 중점을 둡니다.

비용 최적화 디자인 원칙을 읽고 이러한 목표를 달성하기 위한 접근 방식과 해당 환경에서 모델 학습 및 배포와 관련된 기술 디자인 선택 항목에서 필요한 장단을 이해합니다.

디자인 검사 목록

투자를 위한 비용 최적화에 대한 디자인 검토 검사 목록을 기반으로 디자인 전략을 시작하고 워크로드가 워크로드에 할당된 예산에 맞게 조정되도록 디자인을 미세 조정합니다. 디자인은 적절한 Azure 기능을 사용하고, 투자를 모니터링하고, 시간이 지남에 따라 최적화할 기회를 찾아야 합니다.

  • 사용 최적화: 적절한 리소스를 선택하여 워크로드 요구 사항에 맞게 조정합니다. 예를 들어 CPU 또는 GPU, 다양한 SKU 또는 낮음 및 일반 우선 순위 VM 중에서 선택합니다.

  • 사용 최적화: 사용되지 않는 컴퓨팅 리소스가 유휴 상태일 때 스케일 다운되거나 종료되어 낭비를 줄일 수 있는지 확인합니다.

  • 사용 최적화: 정책을 적용하고 디자인의 상한 및 하한을 준수하도록 할당량을 구성합니다.

  • 사용량 최적화: 학습 워크로드 병렬화를 테스트하여 저렴한 SKU에서 학습 요구 사항을 충족할 수 있는지 확인합니다.

  • 속도 최적화: 향후 1~3년 동안 사용량을 예상하는 경우 Azure Reserved Virtual Machine Instances를 구매합니다.

  • 모니터링 및 최적화: 모델을 학습할 때 CPU 및 GPU 사용량과 같은 리소스 사용량을 모니터링합니다. 리소스가 완전히 사용되지 않는 경우 리소스를 더 효율적으로 사용하도록 코드를 수정하거나 더 작거나 저렴한 VM 크기로 스케일 다운합니다.

권장 사항
권장 이점
컴퓨팅 리소스 최적화: 워크로드의 요구 사항에 따라 컴퓨팅 리소스를 최적화합니다. 워크로드에 가장 적합한 SKU를 선택합니다.
  • 범용 – CPU 대 메모리 비율의 균형이 조정되어 모든 용도에 적합합니다.
  • 컴퓨팅 최적화 – 높은 CPU 대 메모리 비율, 수학이 많은 계산에 적합합니다.
  • 메모리 최적화 – 높은 메모리에서 CPU로, 메모리 내 계산 또는 데이터베이스 애플리케이션에 적합합니다.
  • M 시리즈 – 엄청난 양의 메모리와 CPU가 있는 매우 큰 컴퓨터입니다.
  • GPU – 더 높은 병렬 처리 및 특수한 핵심 지침을 활용할 수 있는 변수 수가 많은 모델에 적합합니다. 일반적인 애플리케이션은 딥 러닝, 이미지 또는 비디오 처리, 과학 시뮬레이션, 데이터 마이닝 및 GPU 개발 프레임워크 활용입니다. 여러 패밀리를 사용하여 테스트하고 결과를 기준으로 문서화합니다. 모델과 데이터가 발전함에 따라 가장 적절한 컴퓨팅 리소스가 변경될 수 있습니다. 실행 시간을 모니터링하고 필요에 따라 다시 평가합니다.
올바른 컴퓨팅을 선택하는 것은 워크로드 실행 비용에 직접적인 영향을 주기 때문에 중요합니다. 적절한 사용량 없이 GPU 또는 고성능 SKU를 선택하면 지출이 낭비될 수 있지만, 크기가 작은 컴퓨팅을 선택하면 학습 시간과 성능 문제가 엄청나게 길어질 수 있습니다.
컴퓨팅 크기 조정 최적화: 필요한 것만 사용하도록 자동 크기 조정을 위해 컴퓨팅 클러스터를 구성 합니다.

학습 클러스터의 경우 최소 노드 수를 0으로 설정하고 노드가 유휴 상태인 시간을 적절한 시간으로 구성합니다. 반복 실험을 줄이려면 비용을 절감하는 시간을 줄입니다. 더 반복적인 실험을 위해 더 높은 시간을 사용하여 각 변경 후 스케일 업 또는 다운에 대한 비용을 지불하지 않도록 합니다.
컴퓨팅 클러스터의 사용량이 낮을 때 스케일 다운되도록 자동 크기 조정을 구성합니다.

사용하지 않을 때 학습 클러스터를 0으로 축소하려면 최소 노드 수를 0으로 설정합니다.
학습 종료 정책 설정: 학습 실행 기간을 제한하거나 일찍 종료하도록 조기 종료 정책을 설정합니다 . 종료 정책을 설정하면 성능이 저조한 실행을 조기에 중지하여 비용을 절감할 수 있습니다.
일괄 처리 워크로드에 우선 순위가 낮은 가상 머신 사용: 시간에 민감하지 않고 중단을 복구할 수 있는 일괄 처리 워크로드에 우선 순위가 낮은 가상 머신 을 사용하는 것이 좋습니다. 우선 순위가 낮은 가상 머신을 사용하면 많은 양의 컴퓨팅 능력을 저렴한 비용으로 사용할 수 있습니다. Azure의 잉여 용량을 활용합니다.
컴퓨팅 인스턴스에 대해 유휴 종료 사용: 컴퓨팅 인스턴스에 대해 유휴 종료를 사용하도록 설정하거나 사용 시간이 알려진 경우 시작 및 중지 시간을 예약 합니다. 기본적으로 컴퓨팅 인스턴스를 사용할 수 있으며 비용이 발생합니다. 유휴 상태일 때 종료하도록 컴퓨팅 인스턴스를 구성하거나 일정을 구성하면 사용하지 않을 때 비용이 절감됩니다.
학습 워크로드 병렬화: 학습 워크로드를 병렬화하는 것이 좋습니다. Machine Learning의 병렬 구성 요소를 사용하여 실행을 테스트합니다. 병렬 워크로드는 여러 개의 작은 인스턴스에서 실행될 수 있으므로 잠재적으로 비용이 절감될 수 있습니다.
Azure Reserved VM Instances: 향후 1~3년 동안 사용량을 예상하는 경우 Azure Reserved VM Instances를 구매합니다. 사용량을 예상할 수 있는 경우 서비스에 예약된 용량 옵션을 활용합니다. Azure Reserved VM Instances를 구입하여 가상 머신 사용량을 선불로 결제하고 종량제 가격 책정으로 할인을 제공합니다. 예약과 일치하는 가상 머신 사용량에 대해 할인이 자동으로 적용됩니다.

운영 효율성

운영 우수성은 주로 개발 사례, 가시성 및 릴리스 관리를 위한 절차에 중점을 둡니다.

운영 우수성 디자인 원칙은 워크로드의 운영 요구 사항에 대해 이러한 목표를 달성하기 위한 개략적인 디자인 전략을 제공합니다.

디자인 검사 목록

Machine Learning과 관련된 가시성, 테스트 및 배포를 위한 프로세스를 정의하기 위한 운영 우수성에 대한 디자인 검토 검사 목록을 기반으로 디자인 전략을 시작합니다.

  • 개발 표준: Machine Learning 모델 카탈로그 및 레지스트리를 활용하여 기계 학습 자산을 저장, 버전 관리 및 공유합니다.

  • 효율성 자동화: 좋은 MLOps(기계 학습 작업) 사례를 따릅니다. 가능하면 데이터 준비, 학습 및 채점 프로세스를 위한 엔드 투 엔드 자동화 파이프라인을 빌드합니다. 개발 중에는 자동화된 파이프라인에 스크립트를 더 쉽게 통합할 수 있으므로 학습 모델에 Notebook 대신 스크립트를 사용합니다.

  • 자신 있는 배포: Machine Learning 작업 영역, 컴퓨팅 클러스터, 컴퓨팅 인스턴스 및 기타 배포 환경에 대한 IaC(Infrastructure as Code)를 구현합니다.

  • 가시성: 데이터 드리프트를 포함하여 배포된 모델의 성능을 모니터링합니다.

  • 가시성: 모델이 온라인 엔드포인트에 배포된 경우 Application Insights를 사용하도록 설정 하여 온라인 엔드포인트 및 배포를 모니터링합니다. 학습 인프라를 모니터링하여 기준 요구 사항을 충족하는지 확인합니다.

  • 단순성: 사용 가능한 경우 Machine Learning에 최적화된 큐레이팅된 환경을 사용합니다.

권장 사항
권장 이점
Machine Learning 작업 영역 인스턴스 최소화: 가능한 경우 작업 영역 수를 최소화하여 유지 관리를 줄입니다. 작업 영역 수를 제한하면 유지 관리 작업 및 작업 비용이 줄어듭니다. 보안과 같은 요구 사항의 경우 별도의 여러 작업 영역이 필요할 수 있습니다. 가능한 경우 작업 영역 수를 최소화합니다.
모델 카탈로그 및 레지스트리 활용: Machine Learning 모델 카탈로그 및 레지스트리를 활용하여 기계 학습 자산을 저장, 버전 관리 및 공유합니다.

Machine Learning 모델 카탈로그를 사용하여 모델의 A/B 테스트 및 배포를 구현할 수 있습니다.
Machine Learning 모델 레지스트리를 사용하여 기계 학습 모델을 저장하고 버전을 지정하여 변경 내용을 추적하고 학습에 사용되는 작업 및 데이터 세트를 사용하여 계보를 유지 관리합니다.

Machine Learning 모델 카탈로그를 사용하면 데이터 과학 팀이 미리 학습된 기본 기계 학습 모델을 검색, 평가 및 미세 조정할 수 있습니다.

Machine Learning 모델 레지스트리에 버전이 지정된 모델을 저장하면 A/B 릴리스, 카나리아 릴리스 및 롤백과 같은 배포 전략을 지원합니다.
모델 성능 모니터링: 배포된 모델의 성능을 모니터링하고데이터 세트의 데이터 드리프트를 검색합니다. 배포된 모델을 모니터링하면 모델이 성능 요구 사항을 충족하도록 보장합니다.

데이터 드리프트를 모니터링하면 입력 데이터의 변경 내용을 감지하여 모델 성능이 저하되는 것을 감지할 수 있습니다. 데이터 드리프트를 관리하면 모델이 시간이 지남에 따라 정확한 결과를 제공하는 데 도움이 됩니다.
인프라 모니터링: 모델이 온라인 엔드포인트에 배포된 경우 Application Insights를 사용하도록 설정 하여 온라인 엔드포인트 및 배포를 모니터링합니다.

학습 인프라를 모니터링하여 기준 요구 사항을 충족하는지 확인합니다.

Machine Learning에 대한 리소스 로그를 수집하고 있는지 확인합니다.
엔드포인트를 모니터링하면 요청 대기 시간 및 분당 요청과 같은 메트릭에 대한 가시성을 제공합니다. 성능과 기준을 비교하고 이 정보를 사용하여 그에 따라 컴퓨팅 리소스를 변경할 수 있습니다. 네트워크 바이트와 같은 메트릭을 모니터링하면 할당량 한도에 근접하고 제한을 방지하는 경우 경고할 수 있습니다.

마찬가지로 학습 환경을 모니터링하면 학습 환경을 변경할 수 있는 정보가 제공됩니다. 이 정보를 사용하여 스케일 인 또는 스케일 아웃하거나, 성능이 다른 SKU로 스케일 업 또는 스케일 다운하거나, CPU 또는 GPU 중에서 선택할 수 있습니다.
모델 학습 환경 큐레이팅: 사용 가능한 경우 Machine Learning에 최적화된 큐레이팅된 환경을 사용합니다. 큐레이팅된 환경 은 배포 시간을 단축하고 배포 및 학습 대기 시간을 줄이는 Machine Learning에서 제공하는 미리 만들어진 환경입니다. 큐레이팅된 환경을 사용하면 학습 및 배포 성공률이 향상되고 불필요한 이미지 빌드가 방지됩니다.

PyTorch용 Azure Container와 같은 큐레이팅된 환경은 Machine Learning에서 대규모 모델을 학습하는 데 최적화될 수도 있습니다.

성능 효율성

성능 효율성은 용량 을 관리하여 부하가 증가하는 경우에도 사용자 환경을 유지하는 것입니다. 이 전략에는 리소스 크기 조정, 잠재적 병목 현상 식별 및 최적화, 최대 성능 최적화가 포함됩니다.

성능 효율성 디자인 원칙은 예상 사용량에 대해 이러한 용량 목표를 달성하기 위한 높은 수준의 디자인 전략을 제공합니다.

디자인 검사 목록

Machine Learning 워크로드의 주요 성능 지표를 기반으로 기준을 정의하기 위한 성능 효율성에 대한 디자인 검토 검사 목록을 기반으로 디자인 전략을 시작합니다.

  • 성능 목표: 모델에 허용되는 학습 시간 및 재학습 빈도를 결정합니다. 테스트와 함께 학습 시간에 대한 명확한 대상을 설정하면 학습 시간 목표를 충족하는 데 필요한 컴퓨팅 리소스, CPU 대 GPU 및 CPU SKU를 결정하는 데 도움이 됩니다.

  • 성능 목표: 응답 시간, 초당 요청 수, 오류율 및 작동 시간을 포함하여 배포된 모델에 허용되는 성능 목표를 정의합니다. 성능 목표는 배포된 모델의 효율성에 대한 벤치마크 역할을 합니다. 대상은 CPU 및 GPU 결정, CPU SKU 선택 및 크기 조정 요구 사항을 만드는 데 도움이 될 수 있습니다.

  • 용량 요구 사항 충족: 모델 학습에 적합한 컴퓨팅 리소스를 선택합니다.

  • 용량 요구 사항 충족: 모델 배포에 적합한 컴퓨팅 리소스를 선택합니다.

  • 용량 요구 사항 충족: 자동 크기 조정 기능이 있는 배포 환경을 선택하여 수요가 변동함에 따라 용량을 추가하고 제거합니다.

  • 성능 달성 및 유지: 배포된 모델의 성능을 지속적으로 모니터링하고, 결과를 검토하고, 적절한 조치를 취합니다.

  • 성능 달성 및 유지: 배포된 모델의 인프라 성능을 지속적으로 모니터링하고, 결과를 검토하고, 적절한 조치를 취합니다. 학습 인프라를 모니터링하여 학습 시간에 대한 요구 사항을 충족하는지 확인합니다.

권장 사항
권장 이점
모델 학습에 적합한 컴퓨팅 서비스 선택: 자동 크기 조정이 필요한 경우 모델 학습을 위해 컴퓨팅 인스턴스를 통해 Machine Learning 컴퓨팅 클러스터를 고려합니다.

학습 요구 사항에 따라 컴퓨팅 리소스를 최적화합니다. 먼저 CPU와 GPU 중에서 선택합니다. 기본값은 CPU이지만 딥 러닝, 이미지 또는 비디오 처리와 같은 워크로드 또는 대량의 데이터에 대해 GPU를 고려합니다. 다음으로, 워크로드에 가장 적합한 이미지 SKU를 선택합니다.

테스트를 사용하여 기준을 결정할 때 학습 시간에 대비하여 비용을 최적화하는 컴퓨팅 옵션을 선택합니다.
올바른 컴퓨팅을 선택하는 것은 학습 시간에 직접적인 영향을 주기 때문에 중요합니다. 올바른 SKU 및 CPU와 GPU를 선택하면 모델 학습이 요구 사항 및 성능 목표를 충족할 수 있습니다. 과용되는 성능이 낮은 SKU를 선택하면 학습 시간과 성능 문제가 엄청나게 길어질 수 있습니다.

컴퓨팅 클러스터는 수평 크기 조정을 지원하는 워크로드를 확장하여 성능을 개선하는 기능을 제공합니다. 이 방법은 다양한 요구 사항으로 워크로드를 처리할 수 있는 유연성을 제공하며 필요에 따라 컴퓨터를 추가하거나 제거할 수 있습니다.
모델 배포 환경 크기 조정: 배포 환경의 자동 크기 조정 기능을 사용합니다. AKS 배포 환경의 경우 클러스터 자동 크기 조정기를 사용하여 수요를 충족하기 위해 크기를 조정합니다. 온라인 엔드포인트의 경우 Azure Monitor 자동 크기 조정 기능과의 통합을 통해 자동으로 크기를 조정합니다. 자동 크기 조정은 수요에 맞게 배포된 모델의 인스턴스 수를 조정합니다.
모델 성능 모니터링: 배포된 모델의 성능을 모니터링합니다. 프로덕션에서 모델의 성능을 추적하면 데이터 드리프트, 예측 드리프트, 데이터 품질 및 기능 특성 드리프트와 같은 잠재적인 문제에 대해 경고합니다.

데이터 드리프트를 모니터링하면 입력 데이터의 변경 내용을 감지하여 모델 성능이 저하되는 것을 감지할 수 있습니다. 데이터 드리프트를 관리하면 모델이 시간이 지남에 따라 정확한 결과를 제공하는 데 도움이 됩니다.
인프라 모니터링: 온라인 엔드포인트를 모니터링하고 Monitor와 통합하여 적절한 메트릭 및 로그를 추적하고 모니터링합니다. 온라인 배포를 만들 때 Application Insights 를 사용하도록 설정합니다.

학습 인프라를 모니터링하고 모델을 학습할 때 메모리, CPU 또는 GPU 사용량과 같은 리소스 사용량을 검토하여 기준 요구 사항을 충족하는지 확인합니다.
엔드포인트를 모니터링하면 요청 대기 시간 및 분당 요청과 같은 메트릭에 대한 가시성을 제공합니다. 성능과 기준을 비교하고 이 정보를 사용하여 그에 따라 컴퓨팅 리소스를 변경할 수 있습니다. 네트워크 바이트와 같은 메트릭을 모니터링하면 할당량 한도에 근접하고 제한을 방지하는 경우 경고할 수 있습니다.

마찬가지로 학습 환경을 모니터링하면 학습 환경을 변경할 수 있는 정보가 제공됩니다. 이 정보를 사용하여 스케일 인 또는 스케일 아웃하거나, 성능이 다른 SKU로 스케일 업 또는 스케일 다운하거나, CPU 또는 GPU 중에서 선택할 수 있습니다.

Azure 정책

Azure는 Machine Learning 및 해당 종속성과 관련된 광범위한 기본 제공 정책 집합을 제공합니다. 이전 권장 사항 중 일부는 Azure 정책을 통해 감사할 수 있습니다. 보안과 관련된 다음 정책을 고려합니다.

비용 최적화와 관련된 다음 정책을 고려합니다.

운영 우수성과 관련된 다음 정책을 고려합니다.

포괄적인 거버넌스를 위해 Machine Learning에 대한 Azure Policy 기본 제공 정의를 검토합니다.

Advisor 권장 사항

Advisor는 Azure 배포를 최적화하기 위한 모범 사례를 따르는 데 도움이 되는 개인 설정된 클라우드 컨설턴트입니다. Advisor 권장 사항은 Machine Learning의 안정성, 보안, 비용 효율성, 성능 및 운영 우수성을 개선하는 데 도움이 될 수 있습니다.

보안을 위해 다음 Advisor 권장 사항을 고려합니다.

  • 작업 영역은 CMK(고객 관리형 키)로 암호화해야 합니다.
  • 작업 영역에서는 프라이빗 링크를 사용해야 합니다.
  • 작업 영역에서는 공용 네트워크 액세스를 사용하지 않도록 설정해야 합니다.
  • 컴퓨팅은 가상 네트워크에 있어야 합니다.
  • 최신 소프트웨어 업데이트를 받으려면 컴퓨팅 인스턴스를 다시 만들어야 합니다.

운영 우수성에 대한 다음 Advisor 권장 사항을 고려합니다.

  • Machine Learning 작업 영역의 리소스 로그를 사용하도록 설정해야 합니다.

다음 단계

이 문서에서 강조 표시된 권장 사항을 보여 주는 리소스로 이러한 문서를 고려합니다.