Quando o Vertex AI Pipelines executa um pipeline, ele verifica se há ou não uma execução nos metadados de ML do ML com a interface (chave de cache) de cada etapa do pipeline.
A interface da etapa é definida como a combinação do seguinte:
As entradas da etapa do pipeline. Essas entradas incluem o valor dos parâmetros de entrada (se houver) e o código do artefato de entrada (se houver).
A definição da saída da etapa do pipeline. Essa definição de saída inclui a definição do parâmetro de saída (nome, se houver) e a definição do artefato de saída (nome, se houver).
A especificação do componente. Esta especificação inclui imagens, comandos, argumentos e variáveis de ambiente que estão sendo usadas, além de ordem dos comandos e argumentos.
Além disso, apenas os pipelines com o mesmo nome compartilharão o cache.
Se houver uma execução correspondente nos metadados de ML do Vertex, as saídas dessa execução serão usadas e a etapa será ignorada. Isso ajuda a reduzir os custos ignorando os cálculos que foram concluídos em uma execução anterior do pipeline.
Para desativar o armazenamento em cache na execução no nível da tarefa, defina o seguinte:
eval_task.set_caching_options(False)
É possível desativar o armazenamento em cache na execução para um job de pipeline inteiro. Ao executar um pipeline usando PipelineJob()
, é possível usar o argumento enable_caching
para especificar que essa execução de pipeline não usa o armazenamento em cache. Nenhuma etapa do job de pipeline usará o armazenamento em cache.
Saiba mais sobre como criar execuções de pipeline.
Use o exemplo a seguir para desativar o armazenamento em 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,
)
As seguintes limitações se aplicam a esse recurso:
- O resultado armazenado em cache não tem um time to live (TTL) e pode ser reutilizado, desde que a entrada não seja excluída dos Vertex ML Metadata. Se a entrada for excluída dos Vertex ML Metadata, a tarefa será executada novamente para gerar o resultado novamente.