Começar a usar a CLI do ML Diagnostics

Use a CLI do Google Cloud para criar uma execução de machine learning, implantar XProf como uma instância gerenciada com um back-end escalonável e oferecer uma experiência de criação de perfil gerenciada em Google Cloud.

Há duas categorias de comandos da CLI gcloud do ML Diagnostics: comandos machine-learning-run e comandos profiler. Use os comandos machine-learning-run para criar, excluir, descrever, listar e atualizar execuções de machine learning. Use os comandos profiler para listar nós e capturar perfis on demand na CLI.

  • Comandos Machine-learning-run: Create, Delete, Describe, List, Update.
  • Comandos do criador de perfil:
    • profiler-target: List
    • profiler-session: Capture, List

Todos os comandos da CLI gcloud exigem um projeto definido no ambiente. Para definir o projeto:

gcloud config set project PROJECT_ID

Para mais informações sobre os comandos da CLI gcloud do ML Diagnostics, consulte a referência da API.

Capturar perfis

É possível capturar perfis XProf da carga de trabalho de ML com captura programática ou on demand (manual). A captura programática envolve a incorporação de comandos de criação de perfil diretamente no código de machine learning e a declaração explícita de quando iniciar e parar a gravação de dados. A captura on demand ocorre em tempo real, em que você aciona o criador de perfil enquanto a carga de trabalho já está em execução.

Para ativar a captura de perfil on demand, inicie o servidor XProf no código e chame o método profiler.start_server. Isso inicia um servidor XProf na carga de trabalho de ML que detecta o gatilho da captura on demand para começar a capturar perfis. Use a porta 9999 para este comando: profiler.start_server(port=9999)

Para a captura de perfil programática e on demand, especifique o local para armazenar os perfis capturados. Por exemplo: gs://my-bucket/my-run. Os perfis são armazenados em diretórios aninhados no local:gs://my-bucket/my-run/plugins/profile/session1/. A captura de perfil programática e on demand não pode ocorrer durante o mesmo período.

Para a captura de perfil on demand, configure um cluster do GKE que instala o connection-operator. Para a captura de perfil programática, configure um cluster do GKE que instala o injection-webhook, usando o SDK do ML Diagnostics e rotulando a carga de trabalho.

Para mais informações sobre a criação de perfil com o JAX, consulte Criação de perfil de computação.

Criar execução de machine learning

Crie um recurso de execução de machine learning em um projeto e local especificados. O comando machine-learning-run create implanta o XProf como uma instância gerenciada no seu projeto. A instância gerenciada do XProf é usada para visualizar todos os perfis no projeto e é criada quando a primeira execução de machine learning é criada no projeto.

Use o comando machine-learning-run create:

gcloud alpha mldiagnostics machine-learning-run create

Há duas maneiras de criar uma execução de machine learning:

  • Registre os perfis capturados na plataforma ML Diagnostics.
  • Use o ML Diagnostics para realizar a captura de perfil on demand registrando uma execução ativa. Isso exige uma configuração de cluster do GKE.

Criar execução de ML e registrar perfis capturados

O código a seguir cria uma execução e registra perfis capturados no ML Diagnostics:

gcloud alpha mldiagnostics machine-learning-run create RUN_NAME \
  --location LOCATION \
  --run-group GROUP_NAME \
  --gcs-path gs://BUCKET_NAME \
  --display-name DISPLAY_NAME \
  --labels "list_existing_sessions_only"="true"

O exemplo de código usa as seguintes flags:

Sinalização Requisito Descrição
machine-learning-run Obrigatório Um identificador exclusivo para essa execução específica. Se o nome não for exclusivo, a criação da execução falhará com a mensagem: "A execução de ML já existe".
location Obrigatório Todos os locais do Cluster Director são aceitos, exceto us-east5. Essa flag pode ser definida por um argumento para cada comando ou com o comando: gcloud config set compute/region.
gcs-path Obrigatório O Google Cloud local de armazenamento em que todos os perfis são salvos. Por exemplo: gs://my-bucket ou gs://my-bucket/folder1. Necessário apenas se o SDK for usado para captura de perfil.
run-group Opcional Um identificador que pode ajudar a agrupar várias execuções pertencentes ao mesmo experimento. Por exemplo, todas as execuções associadas a uma varredura de tamanho de fração de TPU podem pertencer ao mesmo grupo.
display-name Opcional Nome de exibição da execução de machine learning. Se não for fornecido, ele será definido como o ID da execução de machine learning.

A flag --labels list_existing_sessions_only=true é necessária se você quiser visualizar e gerenciar os perfis coletados no ML Diagnostics. A flag faz o seguinte:

  1. Cria uma execução de machine learning com o estado "Concluído".
  2. Pesquisa recursivamente arquivos xplane.pb no caminho do diretório do Cloud Storage.
  3. Carrega todas as sessões de perfil localizadas no banco de dados do ML Diagnostics para visualização em Google Cloud, cria links compartilháveis para as sessões de perfil e permite que os usuários gerenciem esses perfis com a plataforma ML Diagnostics.

Se a flag --labels list_existing_sessions_only estiver definida como true para uma execução, não será possível realizar a criação de perfil on demand ou atualizar a execução. Só é possível visualizar e gerenciar perfis.

Criar execução de ML para realizar a captura de perfil on demand

O código a seguir cria um mlrun para realizar a captura de perfil on demand:

gcloud alpha mldiagnostics machine-learning-run create RUN_NAME \
  --location LOCATION \
  --orchestrator gke \
  --run-group RUN_GROUP \
  --gcs-path gs://BUCKET_NAME \
  --display-name DISPLAY_NAME \
  --gke-cluster-name projects/user/locations/LOCATION/clusters/CLUSTER_NAME \
  --gke-namespace NAMESPACE \
  --gke-workload-name WORKLOAD_NAME \
  --gke-kind GKE_KIND \
  --gke-workload-create-time CREATE_TIME \
  --run-phase RUN_PHASE

Além das flags do exemplo anterior, o exemplo de código usa as seguintes flags adicionais:

Sinalização Requisito Descrição
orchestrator Opcional O orquestrador usado para a execução. Se não for especificado, gke será usado por padrão. Valores válidos: gce, gke, slurm.
gke-cluster-name Necessário para o GKE O cluster da carga de trabalho. Por exemplo: /projects/<project_id>/locations/<location>/clusters/<cluster_name>.
gke-kind Necessário para o GKE O tipo da carga de trabalho. Por exemplo: JobSet.
gke-namespace Necessário para o GKE O namespace da carga de trabalho. Por exemplo: default.
gke-workload-name Necessário para o GKE O identificador da carga de trabalho. Por exemplo: jobset-abcd.
gke-workload-create-time Necessário para o GKE O carimbo de data/hora de criação de um JobSet no formato de carimbo de data/hora ISO. Por exemplo: 2026-02-20T06:00:00Z.
run-phase Opcional Fase e estado de uma execução. Se não for fornecido, será ACTIVE por padrão.

Descrever a execução de machine learning

Confira os detalhes de uma execução de machine learning com o comando machine-learning-run describe:

gcloud alpha mldiagnostics machine-learning-run describe RUN_NAME --FORMAT=FORMAT

O exemplo a seguir é uma solicitação de detalhes de execução em JSON:

gcloud alpha mldiagnostics machine-learning-run describe my-run-on-demand \
  --format json

O resultado será assim:

{
  "artifacts": {
    "gcsPath": "gs://my-bucket"
  },
  "createTime": "2026-02-05T16:25:28.367865234Z",
  "displayName": "mldiagnostics-my-run-on-demand",
  "endTime": "0001-01-01T00:00:00Z",
  "etag": "1f54a7f4-bd25-4f98-a91c-97bfa1c5b7a6",
   "name": "projects/163028815180/locations/us-central1/machineLearningRuns/my-run-on-demand",
  "orchestrator": "GKE",
  "runPhase": "ACTIVE",
  "runSet": "my-run-on-demand-group",
  "tools": [
    {
      "XProf": {}
    }
  ],
  "updateTime": "2026-02-05T16:25:28.367865344Z",
  "workloadDetails": {
    "gke": {
      "cluster": "projects/163028815180/locations/us-central1/clusters/my-cluster",
      "id": "jobset-abcd",
      "kind": "JobSet",
      "namespace": "default"
    }
  }
}

Listar execuções de machine learning

Receba uma lista de execuções de machine learning em um projeto e local especificados com o comando machine-learning-run list:

gcloud alpha mldiagnostics machine-learning-run list

O exemplo a seguir é uma solicitação de uma lista de até duas execuções, com saídas dos caminhos de URI:

gcloud alpha mldiagnostics machine-learning-run list --limit 2 --uri
https://hypercomputecluster.googleapis.com/v1alpha/projects/163028815180/locations/us-central1/machineLearningRuns/my-run-on-demand
https://hypercomputecluster.googleapis.com/v1alpha/projects/163028815180/locations/us-central1/machineLearningRuns/my-run-on-demand-2

Atualizar execuções de machine learning

Atualize uma execução de machine learning em um projeto e local especificados. É possível atualizar o nome de exibição, a fase de execução, o orquestrador e os detalhes da carga de trabalho do GKE. Não é possível mudar o ID e o local da execução. Atualize uma execução com o comando machine-learning-run update:

gcloud alpha mldiagnostics machine-learning-run update

Forneça todos os campos incluídos na solicitação create. Se os campos obrigatórios não forem fornecidos durante a solicitação de atualização, eles serão substituídos pelos valores padrão.

A flag etag é um campo obrigatório e precisa ser o valor de ETag (tag de entidade) mais recente para um recurso de execução de ML. Para mais informações, consulte Usar tags de entidade para controle de simultaneidade otimista. Use o seguinte para encontrar o valor de ETAG correto:

gcloud alpha mldiagnostics machine-learning-run describe RUN_NAME

Confira a seguir um exemplo de solicitação de atualização completa:

gcloud alpha mldiagnostics machine-learning-run update my-run-on-demand \
  --orchestrator gke \
  --run-group my-run-on-demand-group \
  --gcs-path gs://my-bucket \
  --display-name mldiagnostics-my-run-on-demand-completed \
  --gke-cluster-name projects/user/locations/us-central1/clusters/my-cluster \
  --gke-namespace default \
  --gke-workload-name jobset-abcd \
  --gke-kind JobSet \
  --gke-workload-create-time 2026-02-20T06:06:06Z \
  --run-phase COMPLETED \
  --etag 1f54a7f4-bd25-4f98-a91c-97bfa1c5b7a6

Excluir execuções de machine learning

Exclua uma execução de machine learning em um projeto e local especificados com o comando machine-learning-run delete:

gcloud alpha mldiagnostics machine-learning-run delete RUN_NAME

A exclusão de uma execução de ML não exclui nenhum dado no Cloud Storage, no Cloud Logging ou na carga de trabalho do GKE. A exclusão do mlrun exclui apenas os metadados relacionados à execução no sistema do ML Diagnostics.

Comandos do criador de perfil

É possível usar o grupo de comandos do criador de perfil para listar todos os perfis, encontrar nós do GKE da carga de trabalho em que o servidor XProf está em execução e capturar perfis on demand na CLI.

Listar destinos do criador de perfil

Liste todos os destinos do criador de perfil associados a uma execução de machine learning em um projeto e local especificados:

gcloud alpha mldiagnostics profiler-target list --machine-learning-run RUN_NAME

Esse comando exige o seguinte:

  • O XProf on demand está ativado na carga de trabalho, que implanta o servidor XProf em todos os nós da carga de trabalho.
  • O cluster do GKE está configurado para o ML Diagnostics, com webhook e operador implantados.
  • Carga de trabalho implantada no GKE.

Confira a seguir um exemplo de solicitação:

gcloud alpha mldiagnostics profiler-target list \
  --machine-learning-run my-run-on-demand

Veja a seguir um exemplo da saída:

---
hostname: gke-tpu-1f0789b5-jqx9
name: projects/163028815180/locations/us-central1/machineLearningRuns/my-run-on-demand/profilerTargets/jobset-abcd-tpu-slice-0-0-tcw2k
---
hostname: gke-tpu-1f0789b5-rxvf
name: projects/163028815180/locations/us-central1/machineLearningRuns/my-run-on-demand/profilerTargets/jobset-abcd-tpu-slice-0-1-dct59

Listar sessões do criador de perfil

Liste todas as sessões do criador de perfil associadas a uma execução de machine learning em um projeto e local especificados com o comando a seguir:

gcloud alpha mldiagnostics profiler-session list --machine-learning-run RUN_NAME

Esse comando do criador de perfil não exige a configuração do GKE ou da carga de trabalho. Ele vai listar todas as sessões de perfil, programáticas e on demand. Se você tiver apenas capturas de perfil programáticas, use esse comando para listar todas as sessões de perfil. Não há configuração obrigatória do GKE, rotulagem da carga de trabalho do GKE ou ativação do XProf on demand.

Confira a seguir um exemplo de solicitação:

gcloud alpha mldiagnostics profiler-session list \
  --machine-learning-run my-run-on-demand

Capturar sessões do criador de perfil on demand

É possível capturar uma sessão do criador de perfil on demand para uma execução de machine learning em um conjunto especificado de nós em que a carga de trabalho está em execução (destinos do criador de perfil).

Esse comando exige o seguinte:

  • O XProf on demand está ativado na carga de trabalho, que implanta o servidor XProf em todos os nós da carga de trabalho.
  • O cluster do GKE está configurado para o ML Diagnostics, com webhook e operador implantados.
  • Carga de trabalho implantada no GKE.

Confira a seguir um exemplo de solicitação:

gcloud alpha mldiagnostics profiler-session capture \
  profiler-session-on-demand \
  --machine-learning-run RUN_NAME \
  --targets TARGET \
  --duration DURATION

O exemplo usa as seguintes flags:

Sinalização Requisito Descrição
profiler-session-name Obrigatório Nome da sessão do criador de perfil a ser capturada.
duration Obrigatório Duração da captura da sessão do criador de perfil. É do tipo Duration. Por exemplo, especifique uma duração de 1s para 1 segundo, 400ms para 400 milissegundos e 5m para 5 minutos.
targets Obrigatório IDs dos destinos do criador de perfil ou identificadores totalmente qualificados para os destinos do criador de perfil. Precisa corresponder a uma lista de destinos associados à execução.
device-tracer-level Opcional Nível do rastreador de dispositivos para a sessão. Valores aceitos: device-tracer-level-enabled, device-tracer-level-disabled (padrão).
host-tracer-level Opcional Nível do rastreador de host para a sessão. Valores aceitos: host-tracer-level-info (padrão), host-tracer-level-critical, host-tracer-level-disabled, host-tracer-level-verbose.
python-tracer-level Opcional Nível do rastreador do Python para a sessão. Valores aceitos: python-tracer-level-disabled (padrão), python-tracer-level-enabled.