Configurer la mise en cache d'exécution

Lorsque Vertex AI Pipelines exécute un pipeline, il vérifie si une exécution existe dans Vertex ML Metadata avec l'interface (clé du cache) de chaque étape du pipeline.

L'interface de l'étape correspond à la combinaison des éléments suivants :

  1. Les entrées de l'étape du pipeline. Ces entrées incluent la valeur des paramètres d'entrée (le cas échéant) et l'ID de l'artefact d'entrée (le cas échéant).

  2. La définition de sortie de l'étape de pipeline. Cette définition de sortie inclut une définition du paramètre de sortie (le nom, le cas échéant) et une définition de l'artefact de sortie (le nom, le cas échéant).

  3. La spécification du composant. Cette spécification inclut l'image, les commandes, les arguments et les variables d'environnement utilisés, ainsi que l'ordre des commandes et des arguments.

De plus, seuls les pipelines portant le même nom de pipeline partagent le cache.

S'il existe une exécution correspondante dans Vertex ML Metadata, les résultats de cette exécution sont utilisés et l'étape est ignorée. Cela permet de réduire les coûts en ignorant les calculs effectués lors d'une exécution précédente du pipeline.

Vous pouvez désactiver la mise en cache d'exécution au niveau des tâches en définissant les éléments suivants :

eval_task.set_caching_options(False)

Vous pouvez désactiver la mise en cache d'exécution pour l'intégralité d'un job de pipeline. Lorsque vous exécutez un pipeline à l'aide de PipelineJob(), vous pouvez utiliser l'argument enable_caching pour indiquer que cette exécution de pipeline n'utilise pas la mise en cache. Toutes les étapes au sein du job de pipeline n'utilisent pas la mise en cache. Découvrez comment créer des exécutions de pipeline.

Utilisez l'exemple suivant pour désactiver la mise en cache :

pl = PipelineJob(
    display_name="My first pipeline",

    # Whether or not to enable caching
    # True = enable the current run to use caching results from previous runs
    # False = disable the current run's use of caching results from previous runs
    # None = defer to cache option for each pipeline component in the pipeline definition
    enable_caching=False,

    # Local or Cloud Storage path to a compiled pipeline definition
    template_path="pipeline.yaml",

    # Dictionary containing input parameters for your pipeline
    parameter_values=parameter_values,

    # Cloud Storage path to act as the pipeline root
    pipeline_root=pipeline_root,
)

Les limites suivantes s'appliquent à cette fonctionnalité :

  • Le résultat mis en cache n'a pas de valeur TTL (Time To Live) et peut être réutilisé tant que l'entrée n'est pas supprimée de Vertex ML Metadata. Si l'entrée est supprimée de Vertex ML Metadata, la tâche est réexécutée pour générer à nouveau le résultat.