En este documento, se describe la biblioteca cliente de Neural Architecture Search de Vertex AI.
El cliente de búsqueda de arquitectura neuronal (en vertex_nas_cli.py
) une la API de Management de trabajos y facilita el desarrollo de Neural Architecture Search. Proporciona los siguientes subcomandos:
vertex_nas_cli.py build
: Compila contenedores de Neural Architecture Search y los envía al registro de contenedores de Google Cloud.vertex_nas_cli.py run_latency_calculator_local
: ejecuta la calculadora de latencia de forma local para el trabajo de búsqueda de etapa 1 de Neural Architecture Search.vertex_nas_cli.py search_in_local
: ejecuta un trabajo de Neural Architecture Search de forma local en tu máquina con una arquitectura de muestreo aleatoria.vertex_nas_cli.py search
: Ejecuta un trabajo de Neural Architecture Search con búsqueda de etapa 1 y entrenamiento de etapa 2 en Google Cloud.vertex_nas_cli.py search_resume
: Reanuda un trabajo anterior de Vertex AI Neural Architecture Search en Google Cloud.vertex_nas_cli.py list_trials
: enumera pruebas de Neural Architecture Search para trabajos específicos.vertex_nas_cli.py train
: entrena la arquitectura de modelo buscada (prueba) en Google Cloud.
Realiza compilaciones
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py build
:
python3 vertex_nas_cli.py build -h
Si se especifica --trainer_docker_id
, compila el Docker del entrenador desde el archivo de Docker que especifica la marca --trainer_docker_file
. El Docker se compila con el URI completo gcr.io/project_id/trainer_docker_id
y se envía a Container Registry de Google Cloud.
Si se especifica --latency_calculator_docker_id
, compila el Docker de calculadora de latencia desde el archivo de Docker especificado por la marca --latency_calculator_docker_file
. El Docker se compila con el URI completo gcr.io/project_id/latency_calculator_docker_id
y se envía a Container Registry de Google Cloud.
En lugar de compilar con Dockerfile, también puedes usar otras herramientas, como bazel
, para compilar el entrenador y usarlo con el servicio de la búsqueda de arquitectura neuronal.
Ejecuta la calculadora de latencia local
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py run_latency_calculator_local
:
python3 vertex_nas_cli.py run_latency_calculator_local -h
Búsqueda en entornos locales
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py search_in_local
:
python3 vertex_nas_cli.py search_in_local -h
Debes especificar --search_space_module
o --prebuilt_search_space
para que vertex_nas_cli.py
genere de forma interna una arquitectura de modelo aleatoria que se pueda usar.
Este comando ejecutará el gcr.io/project_id/trainer_docker_id:latest
de Docker en tu máquina local con una arquitectura de muestreo aleatoria.
Puedes pasar las marcas que usará el contenedor después de --search_docker_flags
. Por ejemplo, puedes pasar --training_data_path
y validation_data_path
al contenedor:
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
Realiza búsquedas
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py search
:
python3 vertex_nas_cli.py search -h
Debes especificar --search_space_module
o --prebuilt_search_space
para que vertex_nas_cli.py
cree search_space_spec
de forma interna.
--accelerator_type
puede especificar las máquinas para ejecutar trabajos de Neural Architecture Search.
Para obtener más información o personalizar tus necesidades, como usar más GPU, consulta add_machine_configurations
.
Usa las marcas con el prefijo train_
para establecer los parámetros relacionados con el entrenamiento en etapa 2.
Reanuda la búsqueda
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py search_resume
:
python3 vertex_nas_cli.py search_resume -h
Puedes reanudar un trabajo de búsqueda que se ejecutó antes si pasas previous_nas_job_id
y, de forma opcional, previous_latency_job_id
.
La marca previous_latency_job_id
solo es necesaria si tu trabajo de búsqueda anterior involucró un trabajo de latencia de Google Cloud. Si, en lugar de un trabajo de latencia de Google Cloud, usaste una calculadora de latencia local, debes volver a ejecutar ese trabajo por separado.
El trabajo de búsqueda anterior no debe ser un trabajo de reanudación. La región del trabajo de reanudación de búsqueda debe ser la misma que la del trabajo de búsqueda anterior.
Un comando search_resume
de ejemplo se ve de la siguiente manera:
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
Enumera pruebas
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py list_trials
:
python3 vertex_nas_cli.py list_trials -h
Tren
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py train
:
python3 vertex_nas_cli.py train -h
Medición de la varianza de tareas de proxy
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py measure_proxy_task_variance
:
python3 vertex_nas_cli.py measure_proxy_task_variance -h
Selección de modelos de tareas de proxy
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py select_proxy_task_models
:
python3 vertex_nas_cli.py select_proxy_task_models -h
Búsqueda de tarea de proxy
Ejecuta el siguiente comando para ver la lista de argumentos que admite vertex_nas_cli.py search_proxy_task
:
python3 vertex_nas_cli.py search_proxy_task -h