Libreria client di Vertex AI Neural Architecture Search

Questo documento descrive la libreria client di Vertex AI Neural Architecture Search.

Il client Neural Architecture Search (in vertex_nas_cli.py) include l'API Job Management e facilita lo sviluppo di Neural Architecture Search. Fornisce i seguenti comandi secondari:

  • vertex_nas_cli.py build: crea container di Neural Architecture Search ed esegue il push a Container Registry di Google Cloud.
  • vertex_nas_cli.py run_latency_calculator_local: esegue il calcolatore di latenza in locale per il job di ricerca fase 1 di Neural Architecture Search.
  • vertex_nas_cli.py search_in_local: esegue un job di Neural Architecture Search (NAS) localmente sulla tua macchina con un'architettura campionata in modo casuale.
  • vertex_nas_cli.py search: esegue il job di Neural Architecture Search con ricerca fase 1 e addestramento fase 2 su Google Cloud.
  • vertex_nas_cli.py search_resume: ripristina un precedente job di Neural Architecture Search (NAS) su Google Cloud.
  • vertex_nas_cli.py list_trials: elenca le prove di Neural Architecture Search per un job specifico.
  • vertex_nas_cli.py train: addestra l'architettura del modello cercato (prova) in Google Cloud.

Build

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py build:

python3 vertex_nas_cli.py build -h

Se --trainer_docker_id è specificato, crea il docker trainer dal file Docker specificato dal flag --trainer_docker_file. Il docker è creato con URI completo gcr.io/project_id/trainer_docker_id e ne viene eseguito il push a container registry di Google Cloud.

Se --latency_calculator_docker_id è specificato, crea la Docker Calcolatrice latenza dal file Docker specificato dal flag --latency_calculator_docker_file. Il docker è creato con l'URI completo gcr.io/project_id/latency_calculator_docker_id e ne viene eseguito il push al container registry di Google Cloud.

Anziché creare con Dockerfile, puoi usare altri strumenti come bazel per creare il trainer e utilizzarlo con il servizio Neural Architecture Search (NAS).

Esegui il calcolatore di latenza in locale

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py run_latency_calculator_local:

python3 vertex_nas_cli.py run_latency_calculator_local -h

Cerca nei risultati di ricerca locale

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py search_in_local:

python3 vertex_nas_cli.py search_in_local -h

Devi specificare --search_space_module o --prebuilt_search_space in modo che vertex_nas_cli.py generi internamente un'architettura di modello casuale da utilizzare.

Questo comando eseguirà il docker gcr.io/project_id/trainer_docker_id:latest sulla tua macchina locale con un'architettura campionata in modo casuale.

Puoi passare i flag che devono essere utilizzati dal container dopo il giorno --search_docker_flags. Ad esempio, puoi passare da --training_data_path e validation_data_path al contenitore:

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

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py search:

python3 vertex_nas_cli.py search -h

Devi specificare --search_space_module o --prebuilt_search_space in modo che vertex_nas_cli.py crei internamente search_space_spec.

Le macchine per l'esecuzione dei job di Neural Architecture Search possono essere specificate da --accelerator_type. Per ulteriori informazioni o per una personalizzazione in base alle tue esigenze, ad esempio per utilizzare più GPU, consulta add_machine_configurations.

Utilizza i flag con prefisso train_ per impostare i parametri relativi all'addestramento della fase 2.

Cerca nel curriculum

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py search_resume:

python3 vertex_nas_cli.py search_resume -h

Puoi riprendere un job di ricerca eseguito in precedenza passando previous_nas_job_id e, facoltativamente, previous_latency_job_id. Il flag previous_latency_job_id è necessario solo se il job di ricerca precedente prevedeva un job di latenza di Google Cloud. Se, invece di un job di latenza di Google Cloud, hai utilizzato un calcolatore di latenza on-premise, devi eseguire di nuovo separatamente il job di questo calcolo della latenza on-premise. Il job di ricerca precedente non deve essere un job di curriculum. La regione per il job di ricerca deve essere la stessa del job di ricerca precedente. Un comando search_resume di esempio ha il seguente aspetto:

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

Elenca prove

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py list_trials:

python3 vertex_nas_cli.py list_trials -h

Addestramento

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py train:

python3 vertex_nas_cli.py train -h

Misurazione della varianza delle attività proxy

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py measure_proxy_task_variance:

python3 vertex_nas_cli.py measure_proxy_task_variance -h

Selezione del modello di attività proxy

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py select_proxy_task_models:

python3 vertex_nas_cli.py select_proxy_task_models -h

Esegui questo comando per visualizzare l'elenco di argomenti supportati da vertex_nas_cli.py search_proxy_task:

python3 vertex_nas_cli.py search_proxy_task -h