Biblioteca cliente da Vertex AI

Este documento descreve a biblioteca de cliente da Vertex AI Neural Architecture Search.

O cliente da pesquisa de arquitetura neural (em vertex_nas_cli.py) envolve a API de gestão de tarefas e facilita o desenvolvimento da pesquisa de arquitetura neural. Disponibiliza os seguintes subcomandos:

  • vertex_nas_cli.py build: cria contentores da Neural Architecture Search e envia-os para o Artifact Registry.
  • vertex_nas_cli.py run_latency_calculator_local: executa a calculadora de latência localmente para a tarefa de pesquisa de fase 1 da pesquisa de arquitetura neural.
  • vertex_nas_cli.py search_in_local: executa a tarefa de pesquisa de arquitetura neural localmente no seu computador com uma arquitetura amostrada aleatoriamente.
  • vertex_nas_cli.py search: executa a tarefa de pesquisa de arquitetura neural com a pesquisa de fase 1 e a preparação de fase 2 em Google Cloud.
  • vertex_nas_cli.py search_resume: retoma uma tarefa de pesquisa de arquitetura neural anterior no Google Cloud.
  • vertex_nas_cli.py list_trials: lista as experiências da pesquisa de arquitetura neural para uma tarefa específica.
  • vertex_nas_cli.py train: prepara a arquitetura do modelo pesquisado (teste) em Google Cloud.

Compilação

Execute o seguinte comando para ver a lista de argumentos suportados por vertex_nas_cli.py build:

python3 vertex_nas_cli.py build -h

Se --trainer_docker_id for especificado, cria o Docker do formador a partir do ficheiro Docker especificado pela flag --trainer_docker_file. O Docker é criado com o URI gcr.io/project_id/trainer_docker_id completo e enviado para o Artifact Registry.

Se --latency_calculator_docker_id for especificado, cria o docker do calculador de latência a partir do ficheiro docker especificado pela flag --latency_calculator_docker_file. O contentor 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 pode usar outras ferramentas, como o bazel, para criar o formador e usá-lo com o serviço Neural Architecture Search.

Execute a calculadora de latência localmente

Execute o seguinte comando para ver a lista de argumentos suportados por vertex_nas_cli.py run_latency_calculator_local:

python3 vertex_nas_cli.py run_latency_calculator_local -h

Pesquise em local

Execute o seguinte comando para ver a lista de argumentos suportados por vertex_nas_cli.py search_in_local:

python3 vertex_nas_cli.py search_in_local -h

Tem de especificar --search_space_module ou --prebuilt_search_space para que vertex_nas_cli.py gere internamente uma arquitetura de modelo aleatória a usar.

Este comando executa o docker gcr.io/project_id/trainer_docker_id:latest na sua máquina local com uma arquitetura amostrada aleatoriamente.

Pode transmitir as flags a serem usadas pelo contentor após --search_docker_flags. Por exemplo, pode transmitir --training_data_path e validation_data_path para o contentor:

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 suportados por vertex_nas_cli.py search:

python3 vertex_nas_cli.py search -h

Tem de especificar --search_space_module ou --prebuilt_search_space para que vertex_nas_cli.py crie internamente search_space_spec.

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

Use as flags com o prefixo train_ para definir os parâmetros relacionados com o treino de fase 2.

Retomar pesquisa

Execute o seguinte comando para ver a lista de argumentos suportados por vertex_nas_cli.py search_resume:

python3 vertex_nas_cli.py search_resume -h

Pode retomar uma tarefa de pesquisa executada anteriormente transmitindo previous_nas_job_id e, opcionalmente, previous_latency_job_id. A flag previous_latency_job_id só é necessária se a tarefa de pesquisa anterior envolver uma Google Cloud tarefa de latência. Se, em vez de uma Google Cloud tarefa de latência , usou uma calculadora de latência no local, tem de executar novamente essa tarefa da calculadora de latência no local em separado. A tarefa de pesquisa anterior não deve ser uma tarefa de currículo. A região para a tarefa de currículo de pesquisa deve ser a mesma que para a tarefa de pesquisa anterior. Um exemplo de comando search_resume tem o seguinte aspeto:

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 avaliações

Execute o seguinte comando para ver a lista de argumentos suportados por vertex_nas_cli.py list_trials:

python3 vertex_nas_cli.py list_trials -h

Comboio

Execute o seguinte comando para ver a lista de argumentos suportados por vertex_nas_cli.py train:

python3 vertex_nas_cli.py train -h

Medição da variância da tarefa de proxy

Execute o seguinte comando para ver a lista de argumentos suportados por vertex_nas_cli.py measure_proxy_task_variance:

python3 vertex_nas_cli.py measure_proxy_task_variance -h

Seleção do modelo de tarefa de proxy

Execute o seguinte comando para ver a lista de argumentos suportados por 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 suportados por vertex_nas_cli.py search_proxy_task:

python3 vertex_nas_cli.py search_proxy_task -h