1.13. 数据科学项目缓存概述


您可以在数据科学管道中使用缓存来优化执行时间并改进资源效率。缓存通过重复使用之前运行的结果来减少冗余任务执行。

缓存对于迭代任务特别有用,其中中间步骤可能不需要重复。了解缓存可帮助您设计更高效的管道,并在模型开发中节省时间。

缓存通过存储成功完成任务的输出来运行,并将新任务的输入与之前缓存的任务进行比较。如果找到匹配项,OpenShift AI 会重复使用缓存的结果,而不是重新执行该任务,从而减少计算时间和资源使用量。

1.13.1. 缓存标准

要缓存生效,以下条件决定任务是否可以使用之前缓存的结果:

  • 输入数据和参数 :如果任务的输入数据和参数与之前的运行不同,则缓存的结果有资格被重复使用。
  • 任务代码和配置 :对任务代码或配置的更改使缓存无效,以确保始终反映修改。
  • Pipeline 环境 :对管道环境(如依赖项版本)的更改也会影响缓存资格以保持一致性。

管道中的缓存步骤在用户界面(UI)中可视化指示:

  • 使用缓存结果的任务会显示一个绿色图标,可帮助您快速确定缓存了哪些步骤。侧面板中的 Status 字段为缓存的任务显示 Cached
  • UI 还包括有关任务之前执行的时间信息,从而可以轻松地验证缓存使用情况。

要检查特定任务的缓存状态,请导航到 UI 中的管道详情视图。缓存和非缓存的任务被明确指示。缓存的任务不会显示执行日志,因为它们会重复使用之前生成的输出,且不会重新执行。

1.13.3. 控制数据科学管道中的缓存

OpenShift AI 中默认启用缓存以提高性能。但是,在禁用缓存时,可能需要特定任务、整个管道或所有管道。例如,对于依赖频繁更新的数据或唯一计算需求的任务,缓存可能并不有用。在其他情况下,如调试、开发或在确定性重新执行时,您可能需要禁用所有管道的缓存。

Important

在管道或管道服务器级别禁用缓存会导致所有任务重新运行,这可能会增加计算时间和资源使用量。

您可以使用以下方法控制数据科学管道的缓存:

  • 单个任务 :数据科学家可以为管道中的特定步骤禁用缓存。
  • 管道(提交时间) :数据科学家可以在提交管道运行时禁用缓存。
  • 管道(编译时间) :数据科学家可以在编译管道时禁用缓存。
  • 所有管道(管道服务器) :集群管理员可以为管道服务器中的所有管道禁用缓存,这将覆盖所有管道和任务级缓存设置。

1.13.3.1. 为单个任务禁用缓存

要为特定任务禁用缓存,请将 set_caching_options 方法直接应用到管道代码中的任务:

task_name.set_caching_options(False)

应用此设置后,OpenShift AI 在将来的管道运行中运行任务,忽略任何缓存的结果。

您可以通过将 set_caching_options 参数设置为 True 或省略 set_caching_options 来为单个任务重新启用缓存。

如果在管道服务器中禁用了缓存,则忽略此设置。

1.13.3.2. 在提交时禁用管道缓存

要在管道提交过程中为整个管道禁用缓存,请在管道代码中将 enable_caching 参数设置为 False。此设置可确保管道执行过程中不会缓存任何步骤。enable_caching 参数仅在使用 kfp.client 提交管道或启动管道运行(如 run_pipeline 方法时可用。

Example:

import kfp
client = kfp.Client()
client.run_pipeline(
    experiment_id=experiment.id,
    pipeline_id=pipeline.id,
    job_name="no-cache-run",
    params={},                # optional
    enable_caching=False,
)

如果在管道编译或管道服务器中禁用了缓存,则忽略此设置。

1.13.3.3. 在编译时禁用管道缓存

要在编译过程中为整个管道禁用缓存,请在本地环境或工作台中设置以下选项之一:

  • 环境变量:

    export KFP_DISABLE_EXECUTION_CACHING_BY_DEFAULT=true
  • CLI 标志(使用 kfp dsl 编译):

    kfp dsl compile --disable-execution-caching-by-default

如果在管道服务器中禁用了缓存,则忽略这些设置。

1.13.3.4. 禁用所有管道的缓存(管道服务器)

集群管理员可以为管道服务器中的所有管道禁用缓存,这将覆盖所有管道和任务级缓存设置。

在 OpenShift 控制台或 CLI 中,将项目的 DataSciencePipelinesApplication (DSPA)自定义资源中的 cacheEnabled 字段设置为 false

Example:

apiVersion: datasciencepipelinesapplications.opendatahub.io/v1
kind: DataSciencePipelinesApplication
metadata:
  name: my-dspa
  namespace: my-namespace
spec:
  apiServer:
    cacheEnabled: false

应用此设置后,所有管道和任务级缓存设置都会被忽略。

要允许在管道和任务级别配置缓存,请在 DSPA 自定义资源中将 cacheEnabled 字段设置为 true

注意

更改此设置会更新管道服务器部署中的 CACHEENABLED 环境变量。

验证

配置缓存设置后,您可以使用以下方法之一验证其行为:

  • 检查 UI :查找任务列表中的绿色图标,以识别缓存的步骤。
  • 测试任务重新运行 :禁用特定任务或管道的缓存,以确认步骤按预期重新执行。
  • 验证输入 :确保应用缓存时任务输入、参数和运行时设置不会改变。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部