本文档介绍了 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 上运行具有 stage-1 搜索和 stage-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。
除了使用 Dockerfile 进行构建,您还可以使用 bazel
等其他工具构建训练程序,并将其与神经架构搜索服务搭配使用。
在本地运行延迟时间计算器
请运行以下命令以查看 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_
的标志来设置 stage-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
代理任务方差测量
请运行以下命令以查看 vertex_nas_cli.py measure_proxy_task_variance
支持的参数列表:
python3 vertex_nas_cli.py measure_proxy_task_variance -h
代理任务模型选择
请运行以下命令以查看 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