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 pesquisa de arquitetura neural e envia para o Artifact 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 pesquisa de arquitetura neural com pesquisa no estágio 1 e treinamento no estágio 2 em Google Cloud.
  • vertex_nas_cli.py search_resume: retoma um job anterior da Pesquisa de arquitetura neural em 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) em 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 Artifact 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 Artifact 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 flag previous_latency_job_id só é necessária se o job de pesquisa anterior envolveu um job de latência Google Cloud . Se, em vez de um job de latência 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 tem a seguinte aparência:

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

Trem

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