Biblioteca de cliente da Vertex AI Neural Architecture Search

Veja neste documento a biblioteca de cliente da Vertex AI Neural Architecture Search.

O cliente de Pesquisa de arquitetura neural (em vertex_nas_cli.py) encapsula a API de gerenciamento de jobs e facilita o desenvolvimento de Pesquisa de arquitetura neural. Ele fornece os seguintes subcomandos:

  • vertex_nas_cli.py build: cria contêineres da Neural Architecture Search e envia para o Google Cloud Container Registry.
  • vertex_nas_cli.py run_latency_calculator_local: executa a calculadora de latência localmente para o job de pesquisa de estágio 1 da arquitetura neural.
  • vertex_nas_cli.py search_in_local: executa o job de pesquisa de arquitetura neural localmente na máquina com uma arquitetura de amostra aleatória.
  • vertex_nas_cli.py search: executa o job de arquitetura neural com pesquisa nos estágios 1 e 2 no Google Cloud.
  • vertex_nas_cli.py search_resume: retoma um job de Neural Architecture Search anterior no Google Cloud.
  • vertex_nas_cli.py list_trials: lista testes de pesquisa de arquitetura neural para uma vaga específica.
  • vertex_nas_cli.py train: treina a arquitetura de modelo pesquisada (teste) no Google Cloud.

Criar

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py build:

python3 vertex_nas_cli.py build -h

Se --trainer_docker_id for especificado, ele criará o docker do treinador a partir do arquivo do Docker especificado pela sinalização --trainer_docker_file. O Docker é criado com o URI completo gcr.io/project_id/trainer_docker_id e enviado para o Google Cloud Container Registry.

Se --latency_calculator_docker_id for especificado, ele criará o Docker da calculadora de latência a partir do arquivo do Docker especificado pela sinalização --latency_calculator_docker_file. O Docker é criado com o URI completo gcr.io/project_id/latency_calculator_docker_id e enviado para o Google Cloud Container Registry.

Em vez de criar com o Dockerfile, também é possível usar outras ferramentas, como bazel, para criar o treinador e usá-lo com o serviço de pesquisa de arquitetura neural.

Executar a calculadora de latência local

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py run_latency_calculator_local:

python3 vertex_nas_cli.py run_latency_calculator_local -h

Pesquisar no Google Local

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py search_in_local:

python3 vertex_nas_cli.py search_in_local -h

É necessário especificar --search_space_module ou --prebuilt_search_space para que vertex_nas_cli.py gere internamente uma arquitetura de modelo aleatória para usar.

Esse comando executará o Docker gcr.io/project_id/trainer_docker_id:latest na sua máquina local com uma arquitetura de amostra aleatória.

Você pode passar pelas sinalizações a serem usadas pelo contêiner depois de --search_docker_flags. Por exemplo, é possível passar --training_data_path e validation_data_path para o contêiner:

python3 vertex_nas_cli.py search_in_local \
--project_id=${PROJECT_ID} \
--trainer_docker_id=${TRAINER_DOCKER_ID} \
--prebuilt_search_space=spinenet \
--use_prebuilt_trainer=True \
--local_output_dir=${JOB_DIR} \
--search_docker_flags \
training_data_path=/test_data/test-coco.tfrecord \
validation_data_path=/test_data/test-coco.tfrecord \
model=retinanet

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py search:

python3 vertex_nas_cli.py search -h

É necessário especificar --search_space_module ou --prebuilt_search_space para que vertex_nas_cli.py crie internamente search_space_spec.

As máquinas para executar jobs de pesquisa de arquitetura neural podem ser especificadas por --accelerator_type. Para mais informações ou para personalizar de acordo com suas necessidades, como usar mais GPUs, consulte add_machine_configurations.

Use as sinalizações com o prefixo train_ para definir os parâmetros relacionados ao treinamento do estágio 2.

Retomar pesquisa

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py search_resume:

python3 vertex_nas_cli.py search_resume -h

É possível retomar um job de pesquisa executado anteriormente transmitindo previous_nas_job_id e, opcionalmente, previous_latency_job_id. A sinalização previous_latency_job_id será necessária apenas se o job de pesquisa anterior tiver envolvido um job de latência do Google Cloud. Se, em vez de um job de latência do Google Cloud, você tiver usado uma calculadora de latência local, será necessário executar esse job separadamente. O job de pesquisa anterior não pode ser um job de retomada. A região do job de retomada de pesquisa precisa ser a mesma do job de pesquisa anterior. Um exemplo de comando search_resume é semelhante a este:

python3 vertex_nas_cli.py search_resume \
  --project_id=${PROJECT} \
  --region=${REGION} \
  --job_name="${JOB_NAME}" \
  --previous_nas_job_id=${previous_nas_job_id} \
  --previous_latency_job_id=${previous_latency_job_id} \
  --root_output_dir=${GCS_ROOT_DIR} \
  --max_nas_trial=2 \
  --max_parallel_nas_trial=2 \
  --max_failed_nas_trial=2

Listar testes

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py list_trials:

python3 vertex_nas_cli.py list_trials -h

Treinamento

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py train:

python3 vertex_nas_cli.py train -h

Avaliação de variação de tarefas de proxy

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py measure_proxy_task_variance:

python3 vertex_nas_cli.py measure_proxy_task_variance -h

Seleção de modelo de tarefa de proxy

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py select_proxy_task_models:

python3 vertex_nas_cli.py select_proxy_task_models -h

Execute o seguinte comando para ver a lista de argumentos compatíveis com vertex_nas_cli.py search_proxy_task:

python3 vertex_nas_cli.py search_proxy_task -h