Gemini Enterprise Agent Platform 用戶端程式庫

本文說明 Agent Platform Neural Architecture Search 的 Neural Architecture Search 用戶端程式庫。

Agent Platform Neural Architecture Search 用戶端 (位於 vertex_nas_cli.py 中) 會包裝工作管理 API,並協助開發 Agent Platform Neural Architecture Search。這個用戶端提供下列子指令:

  • vertex_nas_cli.py build:建構 Agent Platform Neural Architecture Search 容器,並推送至 Artifact Registry
  • vertex_nas_cli.py run_latency_calculator_local:在本機執行延遲計算機,適用於 Agent Platform Neural Architecture Search 第 1 階段搜尋作業。
  • vertex_nas_cli.py search_in_local:在本機上執行 Agent Platform Neural Architecture Search 工作,並隨機取樣架構。
  • vertex_nas_cli.py search:在 Google Cloud上執行 Agent Platform 神經架構搜尋工作,並進行第 1 階段搜尋和第 2 階段訓練。
  • vertex_nas_cli.py search_resume:在 Google Cloud上繼續執行先前的 Agent Platform Neural Architecture Search 工作。
  • vertex_nas_cli.py list_trials:列出特定工作的 Agent Platform Neural Architecture Search 試驗。
  • 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 等其他工具建構訓練器,並搭配 Agent Platform Neural Architecture Search 服務使用,不必使用 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_spacevertex_nas_cli.py 才能在內部產生隨機模型架構。

這個指令會在您的本機電腦上執行 Docker gcr.io/project_id/trainer_docker_id:latest,並隨機取樣架構。

您可以在 --search_docker_flags 後方傳遞要供容器使用的旗標。舉例來說,您可以將 --training_data_pathvalidation_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 指定執行 Agent Platform Neural Architecture Search 工作的機器。如需更多資訊或自訂需求 (例如使用更多 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 工作差異評估

執行下列指令,查看 vertex_nas_cli.py measure_proxy_task_variance 支援的引數清單:

python3 vertex_nas_cli.py measure_proxy_task_variance -h

選取 Proxy 工作模型

執行下列指令,查看 vertex_nas_cli.py select_proxy_task_models 支援的引數清單:

python3 vertex_nas_cli.py select_proxy_task_models -h

執行下列指令,查看 vertex_nas_cli.py search_proxy_task 支援的引數清單:

python3 vertex_nas_cli.py search_proxy_task -h