Vertex AI 신경망 아키텍처 검색 클라이언트 라이브러리

이 문서에서는 Vertex AI 신경망 아키텍처 검색 클라이언트 라이브러리를 설명합니다.

신경망 아키텍처 검색 클라이언트(vertex_nas_cli.py)는 작업 관리 API를 래핑하고 신경망 아키텍처 검색 개발을 지원합니다. 다음 하위 명령어를 제공합니다.

  • vertex_nas_cli.py build: Neural Architecture Search 컨테이너를 빌드하고 Google Cloud Container Registry로 푸시합니다.
  • vertex_nas_cli.py run_latency_calculator_local: 신경망 아키텍처 검색 stage-1 검색 작업의 지연 시간 계산기를 로컬로 실행합니다.
  • vertex_nas_cli.py search_in_local: 무작위로 샘플링된 아키텍처를 사용하여 머신에서 Neural Architecture Search 작업을 로컬로 실행합니다.
  • vertex_nas_cli.py search: Google Cloud에서 stage-1 검색 및 stage-2 학습을 통해 Neural Architecture Search 작업을 실행합니다.
  • 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로 빌드되며 Google Cloud Container Registry로 푸시됩니다.

--latency_calculator_docker_id가 지정되었으면 --latency_calculator_docker_file 플래그로 지정된 docker 파일로부터 지연 시간 계산기 docker를 빌드합니다. Docker는 전체 URI gcr.io/project_id/latency_calculator_docker_id로 빌드되며 Google Cloud Container 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

vertex_nas_cli.py가 사용할 무작위 모델 아키텍처를 내부적으로 생성할 수 있도록 --search_space_module 또는 --prebuilt_search_space를 지정해야 합니다.

이 명령어는 무작위로 샘플링된 아키텍처를 사용해서 로컬 머신에서 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

vertex_nas_cli.py가 내부적으로 search_space_spec을 만들 수 있도록 --search_space_module 또는 --prebuilt_search_space를 지정해야 합니다.

Neural Architecture Search 작업을 실행하는 머신은 --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_idprevious_latency_job_id(선택사항)를 전달하여 이전에 실행한 검색 작업을 재개할 수 있습니다. previous_latency_job_id 플래그는 이전 검색 작업에 Google Cloud 지연 시간 작업이 포함된 경우에만 필요합니다. 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