Ce document décrit la bibliothèque cliente Vertex AI Neural Architecture Search.
Le client Neural Architecture Search (dans vertex_nas_cli.py
) encapsule l'API de gestion des tâches et facilite le développement de Neural Architecture Search. Il fournit les sous-commandes suivantes :
vertex_nas_cli.py build
: crée des conteneurs 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.vertex_nas_cli.py search_in_local
: exécute la tâche 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 Neural Architecture Search avec une recherche de niveau 1 et un entraînement de niveau 2 sur Google Cloud.vertex_nas_cli.py search_resume
: reprend une tâche Neural Architecture Search précédente sur Google Cloud.vertex_nas_cli.py list_trials
: répertorie les essais Neural Architecture Search pour une tâche spécifique.vertex_nas_cli.py train
: entraîne l'architecture de modèle recherchée (essa) dans Google Cloud.
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 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
Rechercher
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 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 précédemment exécutée en transmettant previous_nas_job_id
et éventuellement previous_latency_job_id
.
L'option previous_latency_job_id
n'est nécessaire que si votre tâche de recherche précédente implique une tâche de latence Google Cloud. Si vous avez utilisé un simulateur de latence sur site au lieu d'une tâche de latence Google Cloud, vous devez l'exécuter à nouveau 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 la recherche doit être identique à 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 de tâche 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
Recherche de tâche de proxy
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