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) rappresenta l'API di gestione dei job e semplifica lo sviluppo di Neural Architecture Search. Fornisce i seguenti subcomandi:

  • vertex_nas_cli.py build: crea i contenitori di Neural Architecture Search e li esegue in push in Artifact Registry.
  • vertex_nas_cli.py run_latency_calculator_local: esegue il calcolo della latenza localmente per il job di ricerca di fase 1 di Neural Architecture Search.
  • vertex_nas_cli.py search_in_local: esegue il job di ricerca di architetture neurali localmente sul tuo computer con un'architettura campionata in modo casuale.
  • vertex_nas_cli.py search: esegue il job di ricerca di architetture neurali con la ricerca di fase 1 e l'addestramento di fase 2 su Google Cloud.
  • vertex_nas_cli.py search_resume: riprende un job Neural Architecture Search precedente su Google Cloud.
  • vertex_nas_cli.py list_trials: elenca le prove di ricerca di architetture neurali per un job specifico.
  • vertex_nas_cli.py train: addestra l'architettura del modello di ricerca (prova) in Google Cloud.

Build

Esegui il seguente comando per visualizzare l'elenco degli argomenti supportati da vertex_nas_cli.py build:

python3 vertex_nas_cli.py build -h

Se --trainer_docker_id viene specificato, crea la Dockerer del trainer da quest'ultima specificato dal flag --trainer_docker_file. Il contenitore viene creato con un URI completo gcr.io/project_id/trainer_docker_id ed eseguito il push in Artifact Registry.

Se viene specificato --latency_calculator_docker_id, viene creato il calcolatore della latenza Docker dal file Docker specificato dal flag --latency_calculator_docker_file. La Docker è creata con l'URI completo gcr.io/project_id/latency_calculator_docker_id ed eseguito il push ad Artifact Registry.

Anziché eseguire la compilazione con Dockerfile, puoi anche utilizzare altri strumenti come bazel per compilare l'addestratore e utilizzarlo con il servizio Neural Architecture Search.

Esegui il calcolatore latenza locale

Esegui il seguente comando per visualizzare l'elenco degli argomenti supportati da vertex_nas_cli.py run_latency_calculator_local:

python3 vertex_nas_cli.py run_latency_calculator_local -h

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 genera internamente un'architettura di modello casuale da utilizzare.

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

Puoi passare i flag utilizzati dal container dopo --search_docker_flags. Ad esempio, puoi passare --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 eseguire i job di Neural Architecture Search possono essere specificate da --accelerator_type. Per ulteriori informazioni o per personalizzare il servizio in base alle tue esigenze, ad esempio utilizzando più GPU, consulta add_machine_configurations.

Utilizza i flag con il prefisso train_ per impostare l'addestramento della fase 2 parametri correlati.

Riprendi ricerca

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 coinvolgeva un job di latenza di Google Cloud. Se al posto di un job di latenza di Google Cloud hai usato un calcolatore di latenza on-premise, il job di calcolo della latenza on-premise di nuovo separatamente. Il job di ricerca precedente non deve essere un job di ripresa. La regione per il job di curriculum di ricerca dovrebbe essere lo stesso del job di ricerca precedente. Un esempio di comando search_resume è il seguente:

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 le prove

Esegui il seguente comando per visualizzare l'elenco degli argomenti supportati da vertex_nas_cli.py list_trials:

python3 vertex_nas_cli.py list_trials -h

Addestra

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 il seguente comando per visualizzare l'elenco degli 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