Veja neste documento a biblioteca de cliente da Vertex AI Neural Architecture Search.
O cliente de Pesquisa de arquitetura neural (em vertex_nas_cli.py)
encapsula a API de gerenciamento de jobs e facilita
o desenvolvimento de Pesquisa de arquitetura neural. Ele fornece os seguintes
subcomandos:
vertex_nas_cli.py build: cria contêineres da pesquisa de arquitetura neural e envia para o Artifact Registry.vertex_nas_cli.py run_latency_calculator_local: executa a calculadora de latência localmente para o job de pesquisa de estágio 1 da arquitetura neural.vertex_nas_cli.py search_in_local: executa o job de pesquisa de arquitetura neural localmente na máquina com uma arquitetura de amostra aleatória.vertex_nas_cli.py search: executa o job de pesquisa de arquitetura neural com a pesquisa do estágio 1 e o treinamento do estágio 2 em Google Cloud.vertex_nas_cli.py search_resume: retoma um job anterior da Pesquisa de arquitetura neural em Google Cloud.vertex_nas_cli.py list_trials: lista testes de pesquisa de arquitetura neural para uma vaga específica.vertex_nas_cli.py train: treina a arquitetura de modelo pesquisada (teste) em Google Cloud.
Criar
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py build:
python3 vertex_nas_cli.py build -h
Se --trainer_docker_id for especificado, ele criará o docker do treinador a partir do arquivo do Docker especificado pela sinalização --trainer_docker_file. O Docker é criado com o URI completo
gcr.io/project_id/trainer_docker_id e enviado para o Artifact Registry.
Se --latency_calculator_docker_id for especificado, ele criará o Docker da calculadora de latência a partir do arquivo do Docker especificado pela sinalização --latency_calculator_docker_file. O Docker é criado com o URI completo
gcr.io/project_id/latency_calculator_docker_id e enviado para o Artifact Registry.
Em vez de criar com o Dockerfile, também é possível usar outras ferramentas, como bazel,
para criar o treinador e usá-lo com o serviço de pesquisa de arquitetura neural.
Executar a calculadora de latência local
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py run_latency_calculator_local:
python3 vertex_nas_cli.py run_latency_calculator_local -h
Pesquisar no Google Local
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py search_in_local:
python3 vertex_nas_cli.py search_in_local -h
É necessário especificar --search_space_module ou --prebuilt_search_space para que vertex_nas_cli.py gere internamente uma arquitetura de modelo aleatória para usar.
Esse comando executará o Docker gcr.io/project_id/trainer_docker_id:latest na sua máquina local com uma arquitetura de amostra aleatória.
Você pode passar pelas sinalizações a serem usadas pelo contêiner depois de --search_docker_flags. Por exemplo, é possível passar --training_data_path e validation_data_path para o contêiner:
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
Pesquisar
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py search:
python3 vertex_nas_cli.py search -h
É necessário especificar --search_space_module ou --prebuilt_search_space para que vertex_nas_cli.py crie internamente search_space_spec.
As máquinas para executar jobs de pesquisa de arquitetura neural podem ser especificadas por --accelerator_type.
Para mais informações ou para personalizar de acordo com suas necessidades, como usar mais GPUs, consulte add_machine_configurations.
Use as sinalizações com o prefixo train_ para definir os parâmetros relacionados ao treinamento do estágio 2.
Retomar pesquisa
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py search_resume:
python3 vertex_nas_cli.py search_resume -h
É possível retomar um job de pesquisa executado anteriormente transmitindo
previous_nas_job_id e, opcionalmente, previous_latency_job_id.
A flag previous_latency_job_id só é necessária se o job de pesquisa anterior
envolveu um job de latência Google Cloud . Se, em vez de um job de latência Google Cloud , você tiver usado uma calculadora de latência local, será necessário executar esse job separadamente.
O job de pesquisa anterior não
pode ser um job de retomada. A região do job de retomada de pesquisa
precisa ser a mesma do job de pesquisa anterior.
Um exemplo de comando search_resume tem a seguinte aparência:
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
Listar testes
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py list_trials:
python3 vertex_nas_cli.py list_trials -h
Trem
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py train:
python3 vertex_nas_cli.py train -h
Avaliação de variação de tarefas de proxy
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py measure_proxy_task_variance:
python3 vertex_nas_cli.py measure_proxy_task_variance -h
Seleção de modelo de tarefa de proxy
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py select_proxy_task_models:
python3 vertex_nas_cli.py select_proxy_task_models -h
Pesquisa de tarefas de proxy
Execute o seguinte comando para ver a lista de argumentos compatíveis com
vertex_nas_cli.py search_proxy_task:
python3 vertex_nas_cli.py search_proxy_task -h