ML Diagnostics 플랫폼
Google Cloud ML Diagnostics는 Google Cloud에서 AI 및 ML 워크로드를 최적화, 모니터링, 진단하기 위한 엔드 투 엔드 관리형 플랫폼입니다. ML 진단을 사용하여 워크로드를 모니터링하고 단일 플랫폼 내에서 모든 워크로드 측정항목, 구성, 프로필을 수집하고 시각화합니다. ML 진단은 학습, 학습 후 강화 학습(RL), 추론 워크로드에 적용할 수 있으며 Cloud TPU의 모든 조정 도구와 호환됩니다. GKE 지원이 정식 버전으로 제공됩니다. Cluster Director를 통한 관리형 Slurm, Kubernetes 및 Slurm과 같은 커스텀 조정자, Compute Engine에 대한 지원은 프리뷰 버전입니다.
ML 진단에는 다음과 같은 정식 버전 기능이 포함되어 있습니다.
- 워크로드 모니터링: GKE TPU에서 실행되는 AI/ML 워크로드를 자동으로 모니터링하고 진단합니다. 각 GKE 작업에 대해 ML 진단 워크로드 모니터링은 머신러닝 실행을 자동으로 만들고, 워크로드 전반에서 TPU 듀티 사이클을 모니터링하고, 워크로드에 영향을 미치는 이벤트를 감지하고, 인프라, 조정자, 프레임워크와 같은 워크로드의 다양한 레이어를 분석하여 이벤트의 잠재적 원인을 파악하는 데 도움을 줍니다.
- 머신러닝 실행: ML Diagnostics를 사용하여 Google Cloud CLI를 통해 머신러닝 실행을 만들고 등록하거나 ML Diagnostics SDK를 워크로드와 통합합니다. 워크로드 모니터링을 사용하여 실행을 자동으로 만들고 등록하고, 머신러닝 실행으로 관리형 XProf 인스턴스를 배포하고, 워크로드 측정항목, 구성, 프로필 세션을 수집하고 관리할 수 있습니다.
- gcloud CLI 환경: gcloud CLI를 통해 ML Diagnostics API를 사용하여 실행을 등록 및 관리하고, 관리형 XProf 리소스를 배포하고, 스토리지 버킷에서 프로필 세션을 시각화하고, CLI에서 프로필 캡처를 트리거합니다. 또한 워크로드 모니터링에서 감지한 모든 이벤트를 나열하고 CLI 또는 API를 통해 이러한 이벤트에 대한 분석기 세부정보를 가져올 수 있습니다.
- Python SDK: ML 워크로드와 통합된 오픈소스 ML Diagnostics SDK를 사용하여 완전한 ML 워크로드 진단 환경을 제공합니다. Google Cloud에서 워크로드를 모니터링하고 워크로드 측정항목, 구성, 프로필을 수집하고 관리합니다.
- 관리형 프로파일링: ML Diagnostics는 확장 가능한 백엔드가 있는 XProf의 관리형 인스턴스를 연결된 계정에 배포하여 대규모 프로필을 빠르게 로드할 수 있습니다. 여러 사용자가 동시에 프로필에 액세스할 수 있도록 지원하며 멀티 호스트 프로파일링 및 주문형 프로파일링과 같은 기본 제공 기능이 포함되어 있습니다.
- 워크로드 측정항목: 모델 품질, 모델 성능, 시스템 측정항목을 포함한 워크로드 측정항목을 추적합니다. 워크로드 모니터링을 사용하면 SDK를 통합하지 않고도 워크로드와 연결된 시스템 측정항목을 가져올 수 있습니다.
- 워크로드 구성 관리: 소프트웨어 구성, 시스템 구성, 사용자 정의 구성을 포함한 워크로드 구성을 추적합니다.
- Cluster Director 및 GKE의 시각화: Google Cloud 콘솔의 Cluster Director 및 Google Kubernetes Engine에서 측정항목, 구성, 프로필을 시각화합니다.
- 링크 공유: 머신러닝 실행, 워크로드 모니터링, 측정항목, 프로필에 대한 정보가 포함된 공유 가능한 링크를 사용하여 공동작업합니다.
ML 진단에는 다음과 같은 프리뷰 기능도 포함되어 있습니다.
- 워크로드 모니터링: 성능 저하 분석기에서 상태가 좋지 않은 것으로 표시되면 추가 진단을 위해 XProf 프로필을 자동으로 캡처합니다.
- Python SDK: vLLM, Tunix, TorchTPU 워크로드를 지원합니다.
- 관리형 프로파일링: 스냅샷 모드의 지속적 프로파일링 및 에이전트 프로필 분석
워크로드 프레임워크 및 조정자 유형
ML 진단은 JAX를 지원하며 GKE에서 정식 버전으로 제공됩니다. TorchTPU, JAX의 vLLM, TorchTPU의 vLLM, Tunix와 같은 워크로드 프레임워크는 다음 조정 도구에서 프리뷰로 제공됩니다.
- GKE
- 자체 관리형 Kubernetes
- Cluster Director 관리형 Slurm
- 자체 관리형 Slurm
- Compute Engine
다음 표에는 조정자 유형별 JAX 워크로드에 지원되는 기능과 필수 구성요소가 요약되어 있습니다.
| 조정자 유형 | 지원되는 기능 및 필수 구성요소 |
|---|---|
| GKE |
|
| 자체 관리형 Kubernetes |
|
| Cluster Director 관리형 Slurm, 자체 관리형 Slurm, Compute Engine |
|
사용자 경로
모든 GKE 작업에 대해 워크로드 모니터링과 함께 ML Diagnostics 플랫폼을 자동으로 사용하거나 SDK를 워크로드와 통합하여 완전한 ML 워크로드 진단 환경을 사용할 수 있습니다. Google Cloud 콘솔 또는 CLI를 통해 ML 진단 플랫폼과 상호작용할 수 있습니다. 워크로드 모니터링은 TPU에서 GKE로 배포된 모든 워크로드에 자동으로 제공됩니다.
CLI를 사용하면 ML Diagnostics gcloud CLI를 사용하여 머신러닝 실행을 만들거나 수정하고 관리형 XProf 리소스를 배포할 수 있습니다. ML Diagnostics SDK를 사용하면 SDK를 ML 워크로드에 통합하여 워크로드 측정항목 및 구성을 수집 및 관리하고 관리형 XProf 리소스를 배포해야 합니다.
시작하려면 다음 가이드 중 하나를 사용하세요.
기본 요건
ML Diagnostics를 사용하기 전에 Cluster Director API를 사용 설정하고 필요한 IAM 권한을 추가합니다. GKE를 사용하는 경우 워크로드 모니터링이 이미 사용 설정되어 있습니다. 하지만 ML 진단 SDK 및 주문형 프로파일링에는 추가 GKE 아티팩트와 GKE 클러스터 구성이 필요합니다. 자세한 내용은 GKE 설정을 참조하세요.
Cluster Director API 사용 설정
ML Diagnostics 제품을 사용하기 위해 클러스터를 배포하고 관리하는 데 Cluster Director를 사용할 필요는 없습니다. ML Diagnostics는 GKE, Cluster Director 또는 커스텀 조정자가 관리하는 클러스터에서 작동합니다. ML Diagnostics는 Cluster Director API 제품군에 속하지만 사용자가 Cluster Director 제품 자체를 사용하는 것에 의존하지 않습니다.
Cluster Director API 사용 설정에 대한 자세한 내용은 Google Cloud 프로젝트에서 API 사용 설정을 참조하세요.
IAM 권한
워크로드에서 사용하는 Google Cloud 서비스 계정에는 프로젝트에 할당된 다음 IAM 역할이 필요합니다.
roles/hypercomputecluster.editor:MLRun리소스를 만들고 관리하며 사용자 인터페이스를 볼 수 있는 전체 액세스 권한입니다.roles/logging.logWriter: Cloud Logging에 로그 및 측정항목을 작성합니다.roles/storage.objectUser:machinelearning_run에 지정된 Cloud Storage 버킷에 프로필을 저장합니다.
ML 진단에 필요한 API 하위 집합을 사용자에게 할당하는 커스텀 역할을 만들 수도 있습니다. 사용자는 클러스터 관리를 위해 Cluster Director를 사용할 필요가 없으므로 다음 권한만 할당하면 됩니다.
hypercomputecluster.locations.gethypercomputecluster.locations.listhypercomputecluster.clusters.listhypercomputecluster.nodes.listhypercomputecluster.machineLearningRuns.createhypercomputecluster.machineLearningRuns.deletehypercomputecluster.machineLearningRuns.gethypercomputecluster.machineLearningRuns.listhypercomputecluster.machineLearningRuns.updatehypercomputecluster.operations.cancelhypercomputecluster.operations.deletehypercomputecluster.operations.gethypercomputecluster.operations.listresourcemanager.projects.getresourcemanager.projects.list
Google Kubernetes Engine의 워크로드의 경우 워크로드 아이덴티티 제휴를 사용하여 Kubernetes 서비스 계정을 필요한 역할이 부여된 Google Cloud 서비스 계정과 연결합니다. 호스트 네트워크(hostNetwork: true)에서 실행 중인 포드는 GKE용 워크로드 아이덴티티 제휴를 사용하지 않습니다. 이러한 경우에는 GKE용 워크로드 아이덴티티 제휴 대안을 참조하세요.
Cloud Logging에서 Observability Analytics 사용 설정
모델 측정항목 및 실적 측정항목 시계열 차트는 프로젝트의 _Default 로그 버킷에 대한 Observability Analytics 쿼리를 사용하여 데이터를 렌더링합니다. 해당 버킷에 Observability Analytics가 사용 설정되지 않은 경우 이러한 차트가 실패하고 위젯에 Something went wrong in the backend 또는 0 time
series 메시지가 표시됩니다. 단, 측정항목 데이터는 Cloud Logging에 있고 프로필 및 시스템 측정항목은 예상대로 렌더링됩니다.
프로젝트당 한 번씩 Observability Analytics를 사용 설정합니다. 이 업그레이드는 비파괴적이며 추가 비용이 발생하지 않으며 사용 중지할 수 없습니다. 기존 로그를 계속 쿼리할 수 있습니다.
gcloud logging buckets update _Default --location=global \
--enable-analytics --project=PROJECT_ID
이 명령어를 사용하려면 roles/logging.configWriter과 같은 역할에 포함된 logging.buckets.update 권한이 필요합니다.
가격 책정
Cloud Logging을 통한 측정항목 스토리지와 Cloud Storage를 통한 프로필 스토리지에 대한 요금이 청구됩니다. ML 진단 플랫폼을 사용할 때는 이러한 서비스에 대해 추가 결제를 사용 설정할 필요가 없습니다. ML Diagnostics 플랫폼에서 배포하는 관리형 XProf 리소스에는 요금이 청구되지 않습니다.