Dependendo do tamanho do conjunto de dados e da complexidade do modelo, o treinamento pode levar muito tempo. Um treinamento com dados reais pode levar muitas horas, mas você pode monitorar vários aspectos do job durante a execução.
Como verificar o status do job
Para ver o status geral, a maneira mais fácil de verificar o job é acessar a página Jobs do AI Platform Training no console do Google Cloud. É possível receber os mesmos detalhes de maneira programática e com a Google Cloud CLI.
Console
Abra a página Jobs do AI Platform Training no console do Google Cloud.
Clique no nome do job na lista para abrir a página Detalhes do job.
Localize o status do job na parte superior do relatório. O ícone e o texto descrevem o estado atual do job.
Como filtrar jobs
Na página Jobs, é possível filtrá-los usando vários parâmetros diferentes, incluindo Type, JobID, State e horário de criação do job.
- Clique no campo Filtrar por prefixo , localizado acima da lista de jobs. Selecione o prefixo que você quer usar para fazer a filtragem. Por exemplo, selecione o Tipo.
Para concluir o filtro, clique no sufixo que você quer usar. Por exemplo, as opções de sufixo do prefixo Tipo são:
- Treinamento com código personalizado
- Treinamento com algoritmos integrados
- Predição
O filtro é aplicado à lista Jobs e o nome dele é exibido no campo de filtro. Por exemplo, se você selecionou Treinamento com código personalizado, o filtro Tipo: Treinamento com código personalizado é exibido na parte superior e filtra a lista de jobs. É possível adicionar vários filtros, se necessário.
Como visualizar os testes de hiperparâmetro
Na página Detalhes do job, é possível ver as métricas de cada teste na tabela Testes do HyperTune. Essa tabela aparece apenas para jobs que usam ajuste de hiperparâmetro. É possível alternar as métricas para exibir testes por maior ou menor rmse
, Training steps
e learning_rate
.
Para ver os registros de uma avaliação específica, clique no ícone
gcloud
Use gcloud ai-platform jobs describe
para ver detalhes sobre o estado atual do job na linha de comando:
gcloud ai-platform jobs describe job_name
Você pode ver uma lista de tarefas associadas ao projeto que inclui o status da tarefa e a data/hora de criação com gcloud ai-platform jobs list
.
Na forma mais simples, esse comando lista todos os jobs já criados para o projeto. Altere o escopo da solicitação para limitar o número de jobs reportados. Veja a seguir alguns exemplos de como começar:
Use o argumento --limit
para restringir o número de jobs. Este exemplo lista os 5 jobs mais recentes:
gcloud ai-platform jobs list --limit=5
Use o argumento --filter
para restringir a lista de jobs àqueles com um determinado valor de atributo. Você pode filtrar um ou mais atributos do objeto Job. Além dos principais atributos do job, você pode filtrar objetos dentro do job, como o objeto TrainingInput.
Exemplos de filtragem da lista:
Liste todos os jobs que foram iniciados após um determinado horário. Este exemplo usa 7 horas da noite de 15 de janeiro de 2017:
gcloud ai-platform jobs list --filter='createTime>2017-01-15T19:00'
Liste os últimos três jobs com nomes que começam com uma determinada string. Por exemplo, a string pode representar o nome que você usa para todos os jobs de treinamento para um modelo específico. Este exemplo usa um modelo em que o identificador do job é "census" com um sufixo que é um índice incrementado para cada job:
gcloud ai-platform jobs list --filter='jobId:census*' --limit=3
Liste todos os jobs que falharam com nome iniciado por "rnn":
gcloud ai-platform jobs list --filter='jobId:rnn* AND state:FAILED'
Para ver detalhes sobre as expressões compatíveis com a opção de filtro, consulte a documentação do comando gcloud
.
Python
Monte a string do identificador de job combinando o nome do projeto e o nome do job no formato:
'projects/your_project_name/jobs/your_job_name'
:projectName = 'your_project_name' projectId = 'projects/{}'.format(projectName) jobName = 'your_job_name' jobId = '{}/jobs/{}'.format(projectId, jobName)
Formule a solicitação para projects.jobs.get:
request = ml.projects().jobs().get(name=jobId)
Execute a solicitação (este exemplo coloca a chamada
execute
em um blocotry
para capturar exceções):response = None try: response = request.execute() except errors.HttpError, err: # Something went wrong. Handle the exception in an appropriate # way for your application.
Confira a resposta para garantir que a chamada de serviço retorne os dados, mesmo que tenha erros HTTP.
if response == None: # Treat this condition as an error as best suits your # application.
Receba os dados de status. O objeto de resposta é um dicionário que contém todos os membros aplicáveis do recurso Job, incluindo o recurso TrainingInput completo e os membros aplicáveis do recurso TrainingOutput. No exemplo a seguir, são impressos o status do job e o número de unidades ML consumidas por ele.
print('Job status for {}.{}:'.format(projectName, jobName)) print(' state : {}'.format(response['state'])) print(' consumedMLUnits : {}'.format( response['trainingOutput']['consumedMLUnits']))
Os jobs poderão falhar se houver um problema com o aplicativo de treinamento ou com a infraestrutura do AI Platform Training. É possível usar o Cloud Logging para iniciar a depuração.
Também é possível usar um shell interativo para inspecionar os contêineres de treinamento enquanto o job de treinamento está em execução.
Como monitorar o consumo de recursos
A página Detalhes do job exibe os seguintes gráficos de utilização de recursos dos jobs de treinamento:
- Utilização agregada da CPU ou GPU e a utilização da memória pelo job. Esses gráficos são detalhados por mestre, worker e servidor de parâmetros.
- Uso da rede do job, mensurado em bytes por segundo. Há gráficos separados para bytes enviados e bytes recebidos.
Acesse a página Jobs do AI Platform Training no console do Google Cloud.
Localize o job na lista.
Clique no nome do job na lista para abrir a página Detalhes do job.
Selecione as guias rotuladas CPU, GPU ou Rede para ver os gráficos de utilização de recursos associados.
É possível também acessar informações sobre os recursos on-line que seus jobs de treinamento usam com o Cloud Monitoring. O AI Platform Training exporta métricas para o Cloud Monitoring.
Cada tipo de métrica do AI Platform Training inclui "training" no nome. Por exemplo, ml.googleapis.com/training/cpu/utilization
ou ml.googleapis.com/training/accelerator/memory/utilization
.
Como monitorar com o TensorBoard
Configure seu aplicativo de treinamento para salvar dados resumidos que possam ser examinados e visualizados com o TensorBoard.
Salve-os em um local do Cloud Storage e aponte o TensorBoard para esse local para examiná-los. Também é possível apontar o TensorBoard para um diretório com subdiretórios que contenham a saída de vários jobs.
Veja mais informações sobre o TensorBoard e o AI Platform Training no guia de primeiros passos.
A seguir
- Solucionar problemas com o job de treinamento.
- Implante o modelo treinado para realizar testes e exibir previsões on-line.