Bibliothèque cliente Neural Architecture Search

Ce document décrit la bibliothèque cliente Agent Platform Neural Architecture Search.

Le client Agent Platform Neural Architecture Search (dans vertex_nas_cli.py) encapsule l'API de gestion des tâches et facilite le développement d'Agent Platform Neural Architecture Search. Il fournit les sous-commandes suivantes :

  • vertex_nas_cli.py build : crée des conteneurs Agent Platform Neural Architecture Search et les transfère vers Artifact Registry.
  • vertex_nas_cli.py run_latency_calculator_local : exécute le simulateur de latence localement pour la tâche de recherche Neural Architecture Search de niveau 1 pour Agent Platform.
  • vertex_nas_cli.py search_in_local : exécute la tâche Agent Platform Neural Architecture Search en local sur votre ordinateur avec une architecture d'échantillonnage aléatoire.
  • vertex_nas_cli.py search : exécute une tâche Agent Platform Neural Architecture Search avec une recherche de niveau 1 et un entraînement de niveau 2 sur Cloud de Confiance.
  • vertex_nas_cli.py search_resume : reprend une tâche Agent Platform Neural Architecture Search précédente sur Cloud de Confiance.
  • vertex_nas_cli.py list_trials : répertorie les essais Agent Platform Neural Architecture Search pour une tâche spécifique.
  • vertex_nas_cli.py train : entraîne l'architecture de modèle recherchée (essai) dans Cloud de Confiance.

Créer

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py build :

python3 vertex_nas_cli.py build -h

Si l'option --trainer_docker_id est spécifiée, elle compile le fichier Docker d'entraînement à partir du fichier Docker spécifié par l'option --trainer_docker_file. Le docker est créé avec l'URI complet gcr.io/project_id/trainer_docker_id et transféré vers Artifact Registry.

Si l'option --latency_calculator_docker_id est spécifiée, elle crée le simulateur de latence Docker à partir du fichier Docker spécifié par l'option --latency_calculator_docker_file. Le docker est créé avec l'URI complet gcr.io/project_id/latency_calculator_docker_id et transféré vers Artifact Registry.

Au lieu de compiler avec Dockerfile, vous pouvez utiliser d'autres outils tels que bazel pour créer l'application d'entraînement et l'utiliser avec le service Agent Platform Neural Architecture Search.

Exécuter le simulateur de latence local

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py run_latency_calculator_local :

python3 vertex_nas_cli.py run_latency_calculator_local -h

Rechercher en local

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py search_in_local :

python3 vertex_nas_cli.py search_in_local -h

Vous devez spécifier --search_space_module ou --prebuilt_search_space afin que vertex_nas_cli.py génère en interne une architecture de modèle aléatoire à utiliser.

Cette commande exécutera le fichier Docker gcr.io/project_id/trainer_docker_id:latest sur votre ordinateur local avec une architecture échantillonnée de manière aléatoire.

Vous pouvez transmettre les options que le conteneur utilisera après --search_docker_flags. Par exemple, vous pouvez les transmettre via --training_data_path et validation_data_path au conteneur :

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

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py search :

python3 vertex_nas_cli.py search -h

Vous devez spécifier --search_space_module ou --prebuilt_search_space afin que vertex_nas_cli.py crée en interne search_space_spec.

Les machines permettant d'exécuter des tâches Agent Platform Neural Architecture Search peuvent être spécifiées par --accelerator_type. Pour en savoir plus ou pour personnaliser vos besoins (par exemple, en utilisant davantage de GPU), consultez add_machine_configurations.

Utilisez les options avec le préfixe train_ pour définir les paramètres liés à l'entraînement de la phase 2.

Reprise de la recherche

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py search_resume :

python3 vertex_nas_cli.py search_resume -h

Vous pouvez reprendre une tâche de recherche exécutée précédemment en transmettant previous_nas_job_id et éventuellement previous_latency_job_id. L'indicateur previous_latency_job_id n'est nécessaire que si votre tâche de recherche précédente impliquait un job de latence Cloud de Confiance by S3NS . Si vous avez utilisé un simulateur de latence sur site au lieu d'un job de latence Cloud de Confiance by S3NS , vous devez exécuter à nouveau ce job de simulateur de latence sur site séparément. La tâche de recherche précédente ne doit pas en soi être une tâche de reprise. La région de la tâche de reprise de recherche doit être la même que celle de la tâche de recherche précédente. Voici un exemple de commande search_resume :

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

Répertorier les essais

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py list_trials :

python3 vertex_nas_cli.py list_trials -h

Train

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py train :

python3 vertex_nas_cli.py train -h

Mesure de la variance des tâches de proxy

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py measure_proxy_task_variance :

python3 vertex_nas_cli.py measure_proxy_task_variance -h

Sélection du modèle de tâche de proxy

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py select_proxy_task_models :

python3 vertex_nas_cli.py select_proxy_task_models -h

Exécutez la commande suivante pour afficher la liste des arguments acceptés par vertex_nas_cli.py search_proxy_task :

python3 vertex_nas_cli.py search_proxy_task -h