本文將說明 Vertex AI 類神經架構搜尋用戶端程式庫。
神經架構搜尋用戶端 (位於 vertex_nas_cli.py
中) 會包裝工作管理 API,並協助進行神經架構搜尋開發作業。提供下列子命令:
vertex_nas_cli.py build
:建構神經架構搜尋容器,並推送至 Artifact Registry。vertex_nas_cli.py run_latency_calculator_local
:針對神經架構搜尋第 1 階段搜尋工作,在本機執行延遲時間計算器。vertex_nas_cli.py search_in_local
:在本機上使用隨機取樣的架構,執行神經架構搜尋工作。vertex_nas_cli.py search
:在 Google Cloud上執行神經架構搜尋作業,並進行第 1 階段搜尋和第 2 階段訓練。vertex_nas_cli.py search_resume
:在 Google Cloud上繼續執行先前的神經架構搜尋工作。vertex_nas_cli.py list_trials
:列出特定工作專案的神經架構搜尋測試。vertex_nas_cli.py train
:在 Google Cloud中訓練搜尋的模型架構 (試用)。
建構
執行下列指令,查看 vertex_nas_cli.py build
支援的引數清單:
python3 vertex_nas_cli.py build -h
如果指定 --trainer_docker_id
,系統會從 --trainer_docker_file
標記指定的 Docker 檔案建構訓練器 Docker。Docker 會使用完整的 URI gcr.io/project_id/trainer_docker_id
建構,並推送至 Artifact Registry。
如果指定 --latency_calculator_docker_id
,系統會根據標記 --latency_calculator_docker_file
指定的 Docker 檔案,建構延遲計算器 Docker。Docker 會使用完整 URI gcr.io/project_id/latency_calculator_docker_id
建構,並推送至 Artifact Registry。
您也可以使用 bazel
等其他工具建構訓練器,並搭配神經網路架構搜尋服務使用,而非使用 Dockerfile 建構。
在本機執行延遲計算機
執行下列指令,查看 vertex_nas_cli.py run_latency_calculator_local
支援的引數清單:
python3 vertex_nas_cli.py run_latency_calculator_local -h
搜尋區域資訊
執行下列指令,查看 vertex_nas_cli.py search_in_local
支援的引數清單:
python3 vertex_nas_cli.py search_in_local -h
您需要指定 --search_space_module
或 --prebuilt_search_space
,讓 vertex_nas_cli.py
在內部產生要使用的隨機模型架構。
這個指令會在本機上執行 Docker gcr.io/project_id/trainer_docker_id:latest
,並使用隨機取樣的架構。
您可以傳遞旗標,讓容器在 --search_docker_flags
之後使用。例如,您可以將 --training_data_path
和 validation_data_path
傳遞至容器:
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
搜尋
執行下列指令,查看 vertex_nas_cli.py search
支援的引數清單:
python3 vertex_nas_cli.py search -h
您必須指定 --search_space_module
或 --prebuilt_search_space
,讓 vertex_nas_cli.py
在內部建立 search_space_spec
。
您可以使用 --accelerator_type
指定執行神經架構搜尋工作的機器。如需更多資訊,或想依據自身需求自訂 (例如使用更多 GPU),請參閱 add_machine_configurations
。
使用前置詞為 train_
的標記,設定第 2 階段訓練相關參數。
搜尋履歷
執行下列指令,查看 vertex_nas_cli.py search_resume
支援的引數清單:
python3 vertex_nas_cli.py search_resume -h
您可以傳遞 previous_nas_job_id
和選用的 previous_latency_job_id
,藉此繼續執行先前執行的搜尋作業。只有在先前的搜尋工作涉及 Google Cloud 延遲工作時,才需要使用 previous_latency_job_id
旗標。如果您使用的是內部延遲計算器,而非 Google Cloud 延遲作業,則必須再次單獨執行該內部延遲計算器作業。先前的搜尋工作本身不應是繼續工作。搜尋繼續執行工作適用的地區應與先前的搜尋工作相同。search_resume
指令的範例如下所示:
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
可列出試用版
執行下列指令,查看 vertex_nas_cli.py list_trials
支援的引數清單:
python3 vertex_nas_cli.py list_trials -h
訓練
執行下列指令,查看 vertex_nas_cli.py train
支援的引數清單:
python3 vertex_nas_cli.py train -h
Proxy-task variance measurement
執行下列指令,查看 vertex_nas_cli.py measure_proxy_task_variance
支援的引數清單:
python3 vertex_nas_cli.py measure_proxy_task_variance -h
Proxy-task 模型選取
執行下列指令,查看 vertex_nas_cli.py select_proxy_task_models
支援的引數清單:
python3 vertex_nas_cli.py select_proxy_task_models -h
Proxy-task search
執行下列指令,查看 vertex_nas_cli.py search_proxy_task
支援的引數清單:
python3 vertex_nas_cli.py search_proxy_task -h