En este documento se describe la biblioteca de cliente de Vertex AI Neural Architecture Search.
El cliente de Neural Architecture Search (en vertex_nas_cli.py
) envuelve la API de gestión de trabajos y facilita el desarrollo de Neural Architecture Search. Proporciona los siguientes subcomandos:
vertex_nas_cli.py build
: crea contenedores de búsqueda con arquitectura neuronal y los envía a Artifact Registry.vertex_nas_cli.py run_latency_calculator_local
: ejecuta la calculadora de latencia de forma local para el trabajo de búsqueda de la fase 1 de Neural Architecture Search.vertex_nas_cli.py search_in_local
: ejecuta el trabajo de búsqueda con arquitectura neuronal de forma local en tu máquina con una arquitectura muestreada aleatoriamente.vertex_nas_cli.py search
: ejecuta un trabajo de búsqueda con arquitectura neuronal con la búsqueda de la fase 1 y el entrenamiento de la fase 2 en Google Cloud.vertex_nas_cli.py search_resume
: reanuda un trabajo de búsqueda con arquitectura neuronal anterior en Google Cloud.vertex_nas_cli.py list_trials
: muestra las pruebas de búsqueda con arquitectura neuronal de un trabajo específico.vertex_nas_cli.py train
: entrena la arquitectura del modelo buscado (prueba) en Google Cloud.
Compilación
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por vertex_nas_cli.py build
:
python3 vertex_nas_cli.py build -h
Si se especifica --trainer_docker_id
, se compila el entrenador de Docker a partir del archivo Docker especificado por la marca --trainer_docker_file
. El Docker se crea con el URI completo gcr.io/project_id/trainer_docker_id
y se envía a Artifact Registry.
Si se especifica --latency_calculator_docker_id
, se compila el Docker de la calculadora de latencia a partir del archivo de Docker especificado por la marca --latency_calculator_docker_file
. El archivo Docker se crea con el URI completo gcr.io/project_id/latency_calculator_docker_id
y se envía a Artifact Registry.
En lugar de compilar con Dockerfile, también puedes usar otras herramientas, como bazel
para compilar el entrenador y usarlo con el servicio de búsqueda de arquitectura neuronal.
Ejecutar la calculadora de latencia localmente
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por vertex_nas_cli.py run_latency_calculator_local
:
python3 vertex_nas_cli.py run_latency_calculator_local -h
Buscar en local
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por vertex_nas_cli.py search_in_local
:
python3 vertex_nas_cli.py search_in_local -h
Debe especificar --search_space_module
o --prebuilt_search_space
para que vertex_nas_cli.py
genere internamente una arquitectura de modelo aleatoria.
Este comando ejecutará el docker gcr.io/project_id/trainer_docker_id:latest
en tu máquina local con una arquitectura muestreada aleatoriamente.
Puedes transferir las marcas que debe 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
Buscar
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por vertex_nas_cli.py search
:
python3 vertex_nas_cli.py search -h
Debe especificar --search_space_module
o --prebuilt_search_space
para que vertex_nas_cli.py
cree search_space_spec
internamente.
Las máquinas para ejecutar tareas de Neural Architecture Search se pueden especificar mediante --accelerator_type
.
Para obtener más información o personalizar la configuración según tus necesidades (por ejemplo, usar más GPUs), consulta add_machine_configurations
.
Usa las marcas con el prefijo train_
para definir los parámetros relacionados con la fase 2 de la formación.
Buscar currículum
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por vertex_nas_cli.py search_resume
:
python3 vertex_nas_cli.py search_resume -h
Puedes reanudar una tarea de búsqueda que se haya ejecutado anteriormente pasando previous_nas_job_id
y, opcionalmente, previous_latency_job_id
.
La marca previous_latency_job_id
solo es necesaria si el trabajo de búsqueda anterior implicaba un trabajo de Google Cloud latencia. Si en lugar de una Google Cloud tarea de latencia
has usado una calculadora de latencia local, tendrás que
volver a ejecutar esa tarea de calculadora de latencia local por separado.
La tarea de búsqueda anterior no debe ser una tarea de reanudación. La región de la tarea de búsqueda de currículum debe ser la misma que la de la tarea de búsqueda anterior.
Un ejemplo de comando search_resume
es el siguiente:
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
Mostrar pruebas
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por 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 admitidos por vertex_nas_cli.py train
:
python3 vertex_nas_cli.py train -h
Medición de la varianza de tareas proxy
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por vertex_nas_cli.py measure_proxy_task_variance
:
python3 vertex_nas_cli.py measure_proxy_task_variance -h
Selección del modelo de tarea proxy
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por vertex_nas_cli.py select_proxy_task_models
:
python3 vertex_nas_cli.py select_proxy_task_models -h
Búsqueda de tareas proxy
Ejecuta el siguiente comando para ver la lista de argumentos admitidos por vertex_nas_cli.py search_proxy_task
:
python3 vertex_nas_cli.py search_proxy_task -h