Começar a usar a CLI do ML Diagnostics
Use a CLI do Google Cloud ML Diagnostics para criar uma execução de machine learning, implante o XProf como uma instância gerenciada com um backend escalonável e ofereça uma experiência de criação de perfil gerenciada no Google Cloud.
Há duas categorias de comandos da CLI gcloud do ML Diagnostics: comandos machine-learning-run e profiler. Use os comandos
machine-learning-run para criar, excluir, descrever, listar e atualizar
execuções de aprendizado de máquina. Use os comandos profiler para listar nós e capturar
perfis sob demanda da CLI.
- Comandos
Machine-learning-run:Create,Delete,Describe,ListeUpdate. - Comandos do criador de perfil:
profiler-target:Listprofiler-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 do XProf da sua 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 de gravar dados. A captura on demand ocorre em tempo real, em que você aciona o criador de perfil enquanto a carga de trabalho já está sendo executada ativamente.
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 sua carga de trabalho de ML que detecta o gatilho de captura on demand para
começar a capturar perfis. Use a porta 9999 para este comando:
profiler.start_server(port=9999)
Para as capturas 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 a captura on demand não podem ocorrer durante o mesmo período.
Para captura de perfil sob demanda, configure um cluster do GKE e implante
a carga de trabalho com o rótulo: managed-mldiagnostics-gke=true.
Para mais informações sobre a criação de perfil com JAX, consulte Criação de perfil de computação.
Criar execução de machine learning
Cria 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 de diagnóstico de ML.
- 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 e uma carga de trabalho implantada no
GKE com o rótulo
managed-mldiagnostics-gke=true.
Criar uma execução de ML e registrar perfis capturados
O código a seguir cria uma execução e registra os perfis capturados atuais 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 vai falhar com a mensagem "A execução de ML já existe". |
location |
Obrigatório | Todos os locais do Cluster Director são compatíveis, 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 local de armazenamento Google Cloud 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, será definido como o ID da execução de aprendizado de máquina. |
A flag --labels list_existing_sessions_only=true é obrigatória se você quiser
ver e gerenciar os perfis coletados no Diagnóstico de ML. A flag faz o seguinte:
- Cria uma execução de machine learning com o estado "Concluído".
- Pesquisa recursivamente arquivos xplane.pb no caminho do diretório do Cloud Storage.
- 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 do ML Diagnostics.
Se a flag --labels list_existing_sessions_only estiver definida como true para uma execução,
não será possível fazer criação de perfil sob demanda nem atualizar a execução. Só é possível ver e gerenciar perfis existentes.
Criar uma execução de ML para realizar a captura de perfil sob demanda
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 na 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 de 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 ISO. Por exemplo, 2026-02-20T06:00:00Z.
|
run-phase |
Opcional |
Fase e estado de uma execução. Se não for fornecido, o padrão será ACTIVE.
|
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 da execução em JSON:
gcloud alpha mldiagnostics machine-learning-run describe my-run-on-demand \
--format json
O resultado será o seguinte:
{
"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
Para conferir uma lista de execuções de machine learning em um projeto e local especificados, use 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
Atualiza 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 mais recente da ETag (tag de entidade)
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 correto da ETAG:
gcloud alpha mldiagnostics machine-learning-run describe RUN_NAME
Confira 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 dados no Cloud Storage, no Cloud Logging ou na carga de trabalho do GKE. A exclusão do mlrun remove apenas os metadados relacionados à execução no sistema de diagnóstico de ML.
Comandos do Profiler
É possível usar o grupo de comandos do profiler para listar todos os perfis, encontrar nós do GKE da carga de trabalho em que o servidor XProf está sendo executado 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 requer 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 com o rótulo:
managed-mldiagnostics-gke=true.
Veja 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 seguinte comando:
gcloud alpha mldiagnostics profiler-session list --machine-learning-run RUN_NAME
Esse comando do criador de perfil não exige configuração do GKE ou da carga de trabalho. Ela vai listar todas as sessões de perfil, tanto programáticas quanto on demand. Se você tiver apenas capturas de perfil programáticas, use este comando para listar todas as sessões de perfil. Não é necessário configurar o GKE, rotular a carga de trabalho do GKE nem ativar o XProf sob demanda.
Veja 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á sendo executada (destinos do criador de perfil).
Esse comando requer 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 com o rótulo:
managed-mldiagnostics-gke=true.
Veja 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 perfis ou identificadores totalmente qualificados para os destinos do criador de perfis. Precisa corresponder a uma lista de destinos associados à execução. |
device-tracer-level |
Opcional |
Nível do rastreador de dispositivo 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.
|