Quando Vertex AI Pipelines esegue una pipeline, controlla se in Vertex ML Metadata esiste o meno un'esecuzione con l'interfaccia (chiave della cache) di ogni passaggio della pipeline.
L'interfaccia del passaggio è definita come la combinazione di quanto segue:
Gli input del passaggio della pipeline. Questi input includono il valore (se presente) dei parametri di input e l'ID dell'elemento di input (se presente).
La definizione dell'output del passaggio della pipeline. Questa definizione di output include la definizione del parametro di output (nome, se presente) e la definizione dell'elemento dell'output (nome, se presente).
La specifica del componente. Questa specifica include l'immagine, i comandi, gli argomenti e le variabili di ambiente utilizzati, nonché l'ordine dei comandi e degli argomenti.
Inoltre, solo le pipeline con lo stesso nome condivideranno la cache.
Se in Vertex ML Metadata è presente un'esecuzione corrispondente, vengono utilizzati gli output di quell'esecuzione e il passaggio viene saltato. In questo modo, puoi ridurre i costi evitando i calcoli completati in un'esecuzione precedente della pipeline.
Puoi disattivare la memorizzazione nella cache dell'esecuzione a livello di attività impostando quanto segue:
eval_task.set_caching_options(False)
Puoi disattivare la memorizzazione nella cache dell'esecuzione per un intero job della pipeline. Quando esegui
una pipeline utilizzando PipelineJob()
, puoi utilizzare l'argomento enable_caching
per
specificare che questa esecuzione della pipeline non utilizza la memorizzazione nella cache. Tutti i passaggi all'interno del job della pipeline non utilizzeranno la memorizzazione nella cache.
Scopri di più sulla creazione di esecuzioni della pipeline.
Utilizza il seguente esempio per disattivare la memorizzazione nella 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,
)
A questa funzionalità si applicano le seguenti limitazioni:
- Il risultato memorizzato nella cache non ha un TTL (Time to Live) e può essere riutilizzato a condizione che la voce non venga eliminata da Vertex ML Metadata. Se la voce viene eliminata da Vertex ML Metadata, l'attività verrà eseguita di nuovo per rigenerare il risultato.