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 |
|
| Kubernetes autogerenciado |
|
| Slurm gerenciado pelo Cluster Director, Slurm autogerenciado e Compute Engine |
|
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 doMLRune 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 emmachinelearning_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.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
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.