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 arquitetura neural com pesquisa nos estágios 1 e 2 no Google Cloud.vertex_nas_cli.py search_resume
: retoma um job de Neural Architecture Search anterior no 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) no 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 sinalização previous_latency_job_id
será necessária apenas se o job de pesquisa anterior tiver envolvido um job de latência do Google Cloud. Se, em vez de um job de latência do 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
é semelhante a este:
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