Plataforma ML Diagnostics

Google Cloud O ML Diagnostics é uma plataforma gerenciada completa para otimizar, monitorar e diagnosticar cargas de trabalho de IA e ML no Google Cloud. Use o diagnóstico de ML para monitorar cargas de trabalho, além de coletar e visualizar todas as métricas, configurações e perfis de carga de trabalho em uma única plataforma. O ML Diagnostics é aplicável a cargas de trabalho de treinamento, aprendizado por reforço (RL) pós-treinamento e inferência, além de ser compatível com todos os orquestradores no Cloud TPU. O suporte ao GKE está em disponibilidade geral. O suporte para o Slurm gerenciado pelo Cluster Director, orquestradores personalizados, como Kubernetes e Slurm, e o Compute Engine está em pré-lançamento.

O ML Diagnostics inclui os seguintes recursos em disponibilidade geral:

  • Monitoramento de cargas de trabalho: monitore e diagnostique automaticamente as cargas de trabalho de IA/ML em execução nas TPUs do GKE. Para cada job do GKE, o monitoramento de cargas de trabalho do ML Diagnostics cria automaticamente uma execução de machine learning, monitora o ciclo de trabalho da TPU em toda a carga de trabalho, detecta eventos que afetam a carga de trabalho e analisa diferentes camadas da carga de trabalho, como infraestrutura, orquestrador e framework, para ajudar a determinar as possíveis causas do evento.
  • Execuções de machine learning: use o ML Diagnostics para criar e registrar suas execuções de machine learning usando a Google Cloud CLI ou integre o SDK do ML Diagnostics à sua carga de trabalho. É possível criar e registrar execuções automaticamente com o monitoramento de cargas de trabalho, implantar instâncias gerenciadas do XProf com as execuções de machine learning e coletar e gerenciar métricas, configurações e sessões de perfil de carga de trabalho.
  • Experiência da CLI gcloud: use as APIs ML Diagnostics pela CLI gcloud para registrar e gerenciar execuções, implantar recursos gerenciados do XProf, visualizar sessões de perfil em buckets de armazenamento e acionar capturas de perfil na CLI. Também é possível listar todos os eventos detectados pelo monitoramento de cargas de trabalho e receber detalhes do analisador para esses eventos por meio da CLI ou da API.
  • SDK do Python: use o SDK de código aberto do ML Diagnostics integrado às cargas de trabalho de ML para uma experiência completa de diagnóstico de cargas de trabalho de ML. Monitore cargas de trabalho e colete e gerencie métricas, configurações e perfis de carga de trabalho no Google Cloud.
  • Criação de perfil gerenciada: o ML Diagnostics implanta uma instância gerenciada do XProf com um back-end escalonável nas contas associadas, permitindo o carregamento rápido de perfis grandes. Ele permite que vários usuários acessem perfis simultaneamente e contém recursos integrados, como geração de perfis de vários hosts e sob demanda.
  • Métricas de carga de trabalho: acompanhe as métricas de carga de trabalho, incluindo qualidade do modelo, desempenho do modelo e métricas do sistema. Com o monitoramento de cargas de trabalho, é possível receber métricas do sistema associadas à carga de trabalho sem integrar o SDK.
  • Gerenciamento de configuração de carga de trabalho: rastreie as configurações de carga de trabalho, incluindo configurações de software, de sistema e definidas pelo usuário.
  • Visualizações no Cluster Director e no GKE: confira métricas, configurações e perfis no Cluster Director e no Google Kubernetes Engine no console do Google Cloud .
  • Compartilhamento de link: colabore usando links compartilháveis com informações sobre execuções de machine learning, monitoramento de cargas de trabalho, métricas e perfis.

O ML Diagnostics também inclui os seguintes recursos em fase de pré-lançamento:

  • Monitoramento de cargas de trabalho: capture automaticamente perfis do XProf para diagnósticos adicionais quando os analisadores de degradação de desempenho mostrarem um estado ruim.
  • SDK do Python: suporte para cargas de trabalho vLLM, Tunix e TorchTPU.
  • Criação de perfil gerenciada: criação contínua de perfis no modo de snapshot e análise de perfil agente.

Frameworks de carga de trabalho e tipos de orquestrador

O ML Diagnostics é compatível com o JAX e está em disponibilidade geral no GKE. Frameworks de carga de trabalho como TorchTPU, vLLM no JAX, vLLM no TorchTPU e Tunix estão disponíveis em pré-lançamento nos seguintes orquestradores:

  • GKE
  • Kubernetes autogerenciado
  • Slurm gerenciado pelo Cluster Director
  • Slurm autogerenciado
  • Compute Engine

A tabela a seguir resume os recursos compatíveis e os componentes necessários para cargas de trabalho do JAX em todos os tipos de orquestrador:

Tipo de orquestrador Recursos compatíveis e componentes necessários
GKE
  • Monitoramento de cargas de trabalho do GKE Job e JobSet
  • Métricas do SDK e criação de perfil programática (webhook do GKE)
  • Criação de perfil sob demanda (operador do GKE)
  • Criação de perfil sob demanda, criação de perfil contínua e captura automática de perfil do monitoramento de cargas de trabalho (DaemonSet Diagon)
Kubernetes autogerenciado
  • Métricas do SDK e criação de perfil programática (webhook do Kubernetes)
  • Criação de perfil sob demanda (operador do Kubernetes)
  • Criação de perfil contínua e sob demanda (DaemonSet Diagon)
Slurm gerenciado pelo Cluster Director, Slurm autogerenciado e Compute Engine
  • Métricas do SDK e criação de perfil programática
  • Criação de perfil contínua e sob demanda (DaemonSet Diagon)

Caminhos do usuário

É possível usar a plataforma ML Diagnostics automaticamente com o monitoramento de cargas de trabalho para todos os jobs do GKE ou integrar o SDK à sua carga de trabalho para ter a experiência completa de diagnóstico de cargas de trabalho de ML. É possível interagir com a plataforma de diagnóstico de ML pelo console do Google Cloud ou pela CLI. O monitoramento de cargas de trabalho é disponibilizado automaticamente para todas as cargas de trabalho implantadas com o GKE em TPUs.

Com a CLI, é possível usar a CLI gcloud do ML Diagnostics para criar ou modificar uma execução de machine learning e implantar os recursos gerenciados do XProf. Com o SDK do ML Diagnostics, o SDK precisa ser integrado à carga de trabalho de ML para coletar e gerenciar métricas e configurações de carga de trabalho e implantar recursos gerenciados do XProf.

Para começar, use um dos seguintes guias:

Pré-requisitos

Antes de usar o ML Diagnostics, ative a API Cluster Director e adicione as permissões de IAM necessárias. Se você usa o GKE, o monitoramento de cargas de trabalho já está ativado. No entanto, o SDK de diagnóstico de ML e a criação de perfil sob demanda exigem outros artefatos do GKE e a configuração do cluster do GKE. Para mais informações, consulte Configurar o GKE.

Ativar a API Cluster Director

Não é necessário usar o Cluster Director para implantar e gerenciar seus clusters para usar o produto ML Diagnostics. O ML Diagnostics funciona com clusters gerenciados pelo GKE, pelo Cluster Director ou por orquestradores personalizados. O ML Diagnostics faz parte da família de APIs do Cluster Director, mas não depende dos usuários que usam o produto Cluster Director.

Para mais informações sobre como ativar a API Cluster Director, consulte Como ativar uma API no projeto do Google Cloud .

Permissões do IAM

A conta de serviço do Google Cloud usada pela carga de trabalho requer os seguintes papéis do IAM atribuídos no projeto:

  • roles/hypercomputecluster.editor: para ter acesso total para criar e gerenciar recursos do MLRun e visualizar a interface do usuário.
  • roles/logging.logWriter: para gravar registros e métricas no Cloud Logging.
  • roles/storage.objectUser: para salvar perfis no bucket do Cloud Storage especificado em machinelearning_run.

Também é possível criar papéis personalizados que atribuem aos usuários um subconjunto de APIs necessárias para o ML Diagnostics. Como os usuários não precisam usar o Cluster Director para gerenciar clusters, basta atribuir as seguintes permissões:

  • hypercomputecluster.locations.get
  • hypercomputecluster.locations.list
  • hypercomputecluster.clusters.list
  • hypercomputecluster.nodes.list
  • hypercomputecluster.machineLearningRuns.create
  • hypercomputecluster.machineLearningRuns.delete
  • hypercomputecluster.machineLearningRuns.get
  • hypercomputecluster.machineLearningRuns.list
  • hypercomputecluster.machineLearningRuns.update
  • hypercomputecluster.operations.cancel
  • hypercomputecluster.operations.delete
  • hypercomputecluster.operations.get
  • hypercomputecluster.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Para cargas de trabalho no Google Kubernetes Engine, use a federação de identidade da carga de trabalho para associar uma conta de serviço do Kubernetes a uma conta de serviço do Google Cloud que tenha os papéis necessários. Os pods em execução na rede do host (hostNetwork: true) não usam a Federação de Identidade da Carga de Trabalho para GKE. Nesses casos, consulte Alternativas à Federação de Identidade da Carga de Trabalho para GKE.

Ativar a Análise de Observabilidade no Cloud Logging

Os gráficos de série temporal de métricas de modelo e de performance renderizam os dados usando uma consulta da Análise de Observabilidade no bucket de registros _Default do projeto. Se a Análise de Observabilidade não estiver ativada nesse bucket, esses gráficos vão falhar e o widget vai mostrar uma mensagem Something went wrong in the backend ou 0 time series, mesmo que os dados de métricas estejam presentes no Cloud Logging e os perfis e as métricas do sistema sejam renderizados conforme o esperado.

Ative a Análise de Observabilidade uma vez por projeto. Esse upgrade não é destrutivo, não gera custos adicionais e não pode ser desativado. Ainda é possível consultar os registros atuais:

gcloud logging buckets update _Default --location=global \
  --enable-analytics --project=PROJECT_ID

Esse comando exige a permissão logging.buckets.update, que está incluída em papéis como roles/logging.configWriter.

Preços

Você vai receber cobranças pelo armazenamento de métricas pelo Cloud Logging e pelo armazenamento de perfis pelo Cloud Storage. Não é necessário ativar nenhum faturamento extra para esses serviços ao usar a plataforma de diagnóstico de ML. Não há cobrança pelos recursos gerenciados do XProf implantados pela plataforma ML Diagnostics.