Biblioteca de cliente de Vertex AI

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

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

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