Libreria client Neural Architecture Search

Questo documento descrive la libreria client Neural Architecture Search di Agent Platform Neural Architecture Search.

Il client Agent Platform Neural Architecture Search (in vertex_nas_cli.py) esegue il wrapping dell'API di gestione dei job e facilita lo sviluppo di Agent Platform Neural Architecture Search. Fornisce i seguenti sottocomandi:

  • vertex_nas_cli.py build: crea i container Agent Platform Neural Architecture Search e li invia ad Artifact Registry.
  • vertex_nas_cli.py run_latency_calculator_local: esegue il calcolatore della latenza in locale per il job di ricerca di primo livello di Agent Platform Neural Architecture Search.
  • vertex_nas_cli.py search_in_local: esegue il job Agent Platform Neural Architecture Search localmente sulla tua macchina con un'architettura campionata in modo casuale.
  • vertex_nas_cli.py search: esegue il job Agent Platform Neural Architecture Search con la ricerca di fase 1 e l'addestramento di fase 2 su Cloud de Confiance.
  • vertex_nas_cli.py search_resume: riprende un precedente job di Agent Platform Neural Architecture Search su Cloud de Confiance.
  • vertex_nas_cli.py list_trials: elenca le prove di Agent Platform Neural Architecture Search per un job specifico.
  • vertex_nas_cli.py train: addestra l'architettura del modello cercato (prova) in Cloud de Confiance.

Build

Esegui questo 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 trainer Docker dal file Docker specificato dal flag --trainer_docker_file. Il docker viene creato con l'URI completo gcr.io/project_id/trainer_docker_id e viene eseguito il push su Artifact Registry.

Se viene specificato --latency_calculator_docker_id, viene creato il docker del calcolatore di latenza dal file docker specificato dal flag --latency_calculator_docker_file. Il docker viene creato con l'URI completo gcr.io/project_id/latency_calculator_docker_id e ne viene eseguito il push su Artifact Registry.

Anziché creare con Dockerfile, puoi anche utilizzare altri strumenti come bazel per creare il trainer e utilizzarlo con il servizio Agent Platform Neural Architecture Search.

Esegui il calcolatore di latenza in locale

Esegui questo 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

Cercare in locale

Esegui questo 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à 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 container dopo --search_docker_flags. Ad esempio, puoi passare --training_data_path e validation_data_path al container:

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 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 per eseguire i job di Agent Platform Neural Architecture Search possono essere specificate da --accelerator_type. Per ulteriori informazioni o per personalizzare in base alle tue esigenze, ad esempio utilizzando più GPU, consulta add_machine_configurations.

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

Cerca curriculum

Esegui questo 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 riguardava un job di latenza Cloud de Confiance by S3NS . Se invece di un Cloud de Confiance by S3NS job di latenza hai utilizzato un calcolatore di latenza on-premise, devi eseguire di nuovo separatamente il job del calcolatore di latenza on-premise. Il job di ricerca precedente non deve essere un job di ripristino. La regione del job di ricerca del curriculum 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

Elenco prove

Esegui questo 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 degli argomenti supportati da vertex_nas_cli.py train:

python3 vertex_nas_cli.py train -h

Misurazione della varianza proxy-task

Esegui questo 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 questo 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 degli argomenti supportati da vertex_nas_cli.py search_proxy_task:

python3 vertex_nas_cli.py search_proxy_task -h