Exécuter des jobs d'entraînement personnalisés sur une ressource persistante

Cette page explique comment exécuter un job d'entraînement personnalisé sur une ressource persistante à l'aide de Google Cloud CLI, du SDK Vertex AI pour Python et de l'API REST.

Normalement, lorsque vous créez un job d'entraînement personnalisé, vous devez spécifier les ressources de calcul que le job créée et sur lesquelles il s'exécute. Une fois que vous avez créé une ressource persistante, vous pouvez configurer le job d'entraînement personnalisé pour qu'il s'exécute sur un ou plusieurs pools de ressources de cette ressource persistante. L'exécution d'un job d'entraînement personnalisé sur une ressource persistante réduit de manière significative le temps de démarrage habituellement nécessaire à la création de la ressource de calcul.

Rôles requis

Pour obtenir l'autorisation dont vous avez besoin pour exécuter des jobs d'entraînement personnalisés sur une ressource persistante, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur Vertex AI (roles/aiplatform.user) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient l'autorisation aiplatform.customJobs.create, qui est requise pour exécuter des jobs d'entraînement personnalisés sur une ressource persistante.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un job d'entraînement qui s'exécute sur une ressource persistante

Pour créer un job d'entraînement personnalisé qui s'exécute sur une ressource persistante, apportez les modifications suivantes aux instructions standards de la section créer un job d'entraînement personnalisé :

gcloud

  • Spécifiez l'option --persistent-resource-id, puis définissez la valeur sur l'ID de la ressource persistante (PERSISTENT_RESOURCE_ID) que vous souhaitez utiliser.
  • Spécifiez l'option --worker-pool-spec de telle sorte que les valeurs pour machine-type et disk-type correspondent exactement à un pool de ressources correspondant de la ressource persistante. Spécifiez un seul --worker-pool-spec pour l'entraînement à nœud unique et plusieurs pour l'entraînement distribué.
  • Spécifiez un replica-count inférieur ou égal au replica-count ou au max-replica-count du pool de ressources correspondant.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.

def create_custom_job_on_persistent_resource_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    container_uri: str,
    persistent_resource_id: str,
    service_account: Optional[str] = None,
) -> None:
    aiplatform.init(
        project=project, location=location, staging_bucket=staging_bucket
    )

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": "n1-standard-4",
            "accelerator_type": "NVIDIA_TESLA_K80",
            "accelerator_count": 1,
        },
        "replica_count": 1,
        "container_spec": {
            "image_uri": container_uri,
            "command": [],
            "args": [],
        },
    }]

    custom_job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
        persistent_resource_id=persistent_resource_id,
    )

    custom_job.run(service_account=service_account)

REST

  • Spécifiez le paramètre persistent_resource_id et définissez la valeur sur l'ID de la ressource persistante (PERSISTENT_RESOURCE_ID) que vous souhaitez utiliser.
  • Spécifiez le paramètre worker_pool_specs de telle sorte que les valeurs de machine_spec et disk_spec pour chaque pool de ressources correspondent exactement à un pool de ressources correspondant de la ressource persistante. Spécifiez un seul machine_spec pour l'entraînement à nœud unique et plusieurs pour l'entraînement distribué.
  • Spécifiez un replica_count inférieur ou égal au replica_count ou au max_replica_count du pool de ressources correspondant, à l'exclusion du nombre d'instances dupliquées exécutées sur ce pool de ressources.

Étapes suivantes