In diesem Dokument wird die Clientbibliothek von Neural Architecture Search von Vertex AI erläutert.
Der Neural Architecture Search-Client (in vertex_nas_cli.py
) beinhaltet die Jobverwaltungs-API und vereinfacht die Neural Architecture Search-Entwicklung. Es sind damit folgende Unterbefehle verfügbar:
vertex_nas_cli.py build
: Erstellt Neural Architecture Search-Container und überträgt sie per Push in die Container-Registry von Google Cloud.vertex_nas_cli.py run_latency_calculator_local
: Führt den Latenzrechner lokal für den Neural Architecture Search-Phase-1-Suchjob aus.vertex_nas_cli.py search_in_local
: Führt den Neural Architecture Search-Job lokal auf einer Maschine mit einer zufällig ausgewählten Architektur aus.vertex_nas_cli.py search
: Führt einen Neural Architecture Search-Job mit Phase-1-Suche und Phase-2-Training in Google Cloud aus.vertex_nas_cli.py search_resume
: Setzt einen vorherigen Neural Architecture Search-Job in Google Cloud fort.vertex_nas_cli.py list_trials
: Listet Neural Architecture Search-Tests für einen bestimmten Job auf.vertex_nas_cli.py train
: Trainiert die gesuchte Modellarchitektur (Test) in Google Cloud.
Build
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py build
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py build -h
Wenn --trainer_docker_id
angegeben ist, wird der Trainer-Docker aus der mit dem Flag --trainer_docker_file
angegebenen Docker-Datei erstellt. Der Docker wird mit dem vollständigen URI gcr.io/project_id/trainer_docker_id
erstellt und in die Google Cloud Container Registry übertragen.
Wenn --latency_calculator_docker_id
angegeben ist, wird der Docker-Latenzrechner aus der Docker-Datei erstellt, die durch das Flag --latency_calculator_docker_file
angegeben wird. Der Docker wird mit dem vollständigen URI gcr.io/project_id/latency_calculator_docker_id
erstellt und in die Google Cloud Container Registry übertragen.
Anstatt mit Dockerfile zu erstellen, können Sie auch andere Tools wie bazel
verwenden, um den Trainer zu erstellen, und können ihn mit dem Neural Architecture Search-Dienst verwenden.
Latenzrechner lokal ausführen
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py run_latency_calculator_local
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py run_latency_calculator_local -h
Lokal suchen
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py search_in_local
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py search_in_local -h
Sie müssen entweder --search_space_module
oder --prebuilt_search_space
angeben, damit vertex_nas_cli.py
intern eine zu verwendende zufällige Modellarchitektur generiert.
Mit diesem Befehl wird der Docker gcr.io/project_id/trainer_docker_id:latest
auf Ihrem lokalen Computer mit einer zufällig ausgewählten Architektur ausgeführt.
Sie können nach --search_docker_flags
die Flags übergeben, die vom Container verwendet werden sollen. Sie können beispielsweise --training_data_path
und validation_data_path
an den Container übergeben:
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
Suchen
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py search
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py search -h
Sie müssen entweder --search_space_module
oder --prebuilt_search_space
angeben, damit vertex_nas_cli.py
intern search_space_spec
erstellt.
Die Maschinen, auf denen Neural Architecture Search-Jobs ausgeführt werden sollen, können durch --accelerator_type
angegeben werden.
Weitere Informationen, auch für die Anpassung an Ihre Anforderungen, etwa zur Verwendung weiterer GPUs, finden Sie unter add_machine_configurations
.
Verwenden Sie die Flags mit dem Präfix train_
, um die Trainingsparameter für Phase 2 festzulegen.
Suche fortsetzen
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py search_resume
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py search_resume -h
Sie können einen zuvor ausgeführten Suchjob fortsetzen, indem Sie previous_nas_job_id
und optional previous_latency_job_id
übergeben.
Das Flag previous_latency_job_id
ist nur erforderlich, wenn Ihr vorheriger Suchjob einen Google Cloud-Latenzjob enthielt. Wenn Sie anstelle eines Google Cloud-Latenzjobs einen lokalen Latenzrechner verwendet haben, müssen Sie diesen lokalen Latenzrechner-Job separat ausführen.
Der vorherige Suchjob darf selbst kein fortgesetzter Job sein. Die Region für den fortgesetzten Suchjob muss mit der Region des vorherigen Suchjobs übereinstimmen.
Ein Beispiel für einen search_resume
-Befehl:
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
Tests auflisten
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py list_trials
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py list_trials -h
Trainieren
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py train
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py train -h
Messung der Varianz der Proxyaufgabe
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py measure_proxy_task_variance
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py measure_proxy_task_variance -h
Auswahl der Proxy-Aufgabenaufgabe
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py select_proxy_task_models
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py select_proxy_task_models -h
Proxy-Aufgabensuche
Führen Sie den folgenden Befehl aus, um die Liste der von vertex_nas_cli.py search_proxy_task
unterstützten Argumente aufzurufen:
python3 vertex_nas_cli.py search_proxy_task -h