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 sulla tua macchina 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 Neural Architecture Search per un job specifico.
  • vertex_nas_cli.py train: addestra l'architettura del modello cercata (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 viene specificato --trainer_docker_id, viene creato il docker del trainer dal file Docker 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 compilato il calcolatore della latenza Docker dal file Docker specificato dal flag --latency_calculator_docker_file. Il contenitore viene creato con l'URI completogcr.io/project_id/latency_calculator_docker_id e viene eseguito il push in 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 calcolo della latenza localmente

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 il seguente comando per visualizzare l'elenco degli 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 del 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 da utilizzare dal contenitore 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 il seguente comando per visualizzare l'elenco degli 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 su cui eseguire i job di ricerca di architetture neurali possono essere specificate tramite --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 prefisso train_ per impostare i parametri relativi all'addestramento della fase 2.

Riprendi ricerca

Esegui il seguente comando per visualizzare l'elenco degli 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 Google Cloud di latenza. Se anziché un Google Cloud job di latenza hai utilizzato un calcolatore della latenza on-premise, devi eseguire di nuovo separatamente il job del calcolatore della latenza on-premise. Il job di ricerca precedente non deve essere un job di ripresa. La regione per il job di ripresa della ricerca deve essere la stessa 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

Elenco 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 il seguente comando per visualizzare l'elenco degli argomenti supportati da vertex_nas_cli.py train:

python3 vertex_nas_cli.py train -h

Misurazione della varianza delle attività proxy

Esegui il seguente comando per visualizzare l'elenco degli 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 il seguente comando per visualizzare l'elenco degli argomenti supportati da vertex_nas_cli.py search_proxy_task:

python3 vertex_nas_cli.py search_proxy_task -h