1.13. 数据科学项目缓存概述
您可以在数据科学管道中使用缓存来优化执行时间并改进资源效率。缓存通过重复使用之前运行的结果来减少冗余任务执行。
缓存对于迭代任务特别有用,其中中间步骤可能不需要重复。了解缓存可帮助您设计更高效的管道,并在模型开发中节省时间。
缓存通过存储成功完成任务的输出来运行,并将新任务的输入与之前缓存的任务进行比较。如果找到匹配项,OpenShift AI 会重复使用缓存的结果,而不是重新执行该任务,从而减少计算时间和资源使用量。
1.13.1. 缓存标准 复制链接链接已复制到粘贴板!
要缓存生效,以下条件决定任务是否可以使用之前缓存的结果:
- 输入数据和参数 :如果任务的输入数据和参数与之前的运行不同,则缓存的结果有资格被重复使用。
- 任务代码和配置 :对任务代码或配置的更改使缓存无效,以确保始终反映修改。
- Pipeline 环境 :对管道环境(如依赖项版本)的更改也会影响缓存资格以保持一致性。
1.13.2. 在 OpenShift AI 用户界面中查看缓存的步骤 复制链接链接已复制到粘贴板!
管道中的缓存步骤在用户界面(UI)中可视化指示:
-
使用缓存结果的任务会显示一个绿色图标,可帮助您快速确定缓存了哪些步骤。侧面板中的 Status 字段为缓存的任务显示
Cached。 - UI 还包括有关任务之前执行的时间信息,从而可以轻松地验证缓存使用情况。
要检查特定任务的缓存状态,请导航到 UI 中的管道详情视图。缓存和非缓存的任务被明确指示。缓存的任务不会显示执行日志,因为它们会重复使用之前生成的输出,且不会重新执行。
1.13.3. 控制数据科学管道中的缓存 复制链接链接已复制到粘贴板!
OpenShift AI 中默认启用缓存以提高性能。但是,在禁用缓存时,可能需要特定任务、整个管道或所有管道。例如,对于依赖频繁更新的数据或唯一计算需求的任务,缓存可能并不有用。在其他情况下,如调试、开发或在确定性重新执行时,您可能需要禁用所有管道的缓存。
在管道或管道服务器级别禁用缓存会导致所有任务重新运行,这可能会增加计算时间和资源使用量。
您可以使用以下方法控制数据科学管道的缓存:
- 单个任务 :数据科学家可以为管道中的特定步骤禁用缓存。
- 管道(提交时间) :数据科学家可以在提交管道运行时禁用缓存。
- 管道(编译时间) :数据科学家可以在编译管道时禁用缓存。
- 所有管道(管道服务器) :您可以对管道服务器中的所有管道禁用缓存,这将覆盖所有管道和任务级缓存设置。
1.13.3.1. 为单个任务禁用缓存 复制链接链接已复制到粘贴板!
要为特定任务禁用缓存,请将 set_caching_options 方法直接应用到管道代码中的任务:
task_name.set_caching_options(False)
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:
如果在管道编译或管道服务器中禁用了缓存,则忽略此设置。
1.13.3.3. 在编译时禁用管道缓存 复制链接链接已复制到粘贴板!
要在编译过程中为整个管道禁用缓存,请在本地环境或工作台中设置以下选项之一:
环境变量:
export KFP_DISABLE_EXECUTION_CACHING_BY_DEFAULT=true
export KFP_DISABLE_EXECUTION_CACHING_BY_DEFAULT=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow CLI 标志(使用
kfp dsl 编译):kfp dsl compile --disable-execution-caching-by-default
kfp dsl compile --disable-execution-caching-by-defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果在管道服务器中禁用了缓存,则忽略这些设置。
1.13.3.4. 禁用所有管道的缓存(管道服务器) 复制链接链接已复制到粘贴板!
要为管道服务器中的所有管道禁用缓存并覆盖所有管道和任务级缓存设置,请使用以下方法之一:
- Pipeline 服务器配置
-
在 OpenShift AI 仪表板中点 Data Science pipelines
Pipelines。 - 在 Pipelines 页面中,从 Project 下拉列表中选择包含您要配置的管道服务器的项目。
- 从 Pipeline 服务器操作 列表中,选择 Manage pipeline server configuration。
- 在 Pipeline caching 部分中,清除 Allow caching to be configured per pipeline and task 复选框。
- 点击 Save。
-
在 OpenShift AI 仪表板中点 Data Science pipelines
- Data Science Pipelines Application (集群管理员)
在 OpenShift 控制台或 CLI 中,将项目的
DataSciencePipelinesApplication(DSPA)自定义资源中的cacheEnabled字段设置为false。Example:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要允许在管道和任务级别配置缓存,请在 DSPA 自定义资源中将
cacheEnabled字段设置为true。
应用此设置后,所有管道和任务级缓存设置都会被忽略。
更改此设置会更新管道服务器部署中的 CACHEENABLED 环境变量。
验证
配置缓存设置后,您可以使用以下方法之一验证其行为:
- 检查 UI :查找任务列表中的绿色图标,以识别缓存的步骤。
- 测试任务重新运行 :禁用特定任务或管道的缓存,以确认步骤按预期重新执行。
- 验证输入 :确保应用缓存时任务输入、参数和运行时设置不会改变。
您还可以为单个节点禁用缓存,或使用 Elyra 为 JupyterLab 中的整个管道禁用缓存。如需更多信息,请参阅 在 Elyra 中禁用节点缓存。