Kubeflow基础知识

发布时间 2023-10-08 11:06:42作者: 哈皮霍根

kubeflow 基础知识

kubeflow 简介

kubeflow是谷歌开源的MLOps开源平台,其中包含的不同组件代表了机器学习生命周期的不同阶段。
下图是kubeflow组织ML工作流程:
image

kubeflow组件介绍

1. kubeflow Pipelines

  pipelines是对机器学习工作流的一种描述,当运行一个pipeline时系统会启动一个或多个与之对应的Pod,Pod启动docker容
器,容器执行我的代码。
  • pipeline组件
    组件是pipeline流程中的一个步骤(也称作为一个节点),定义一个组件主要包括:元数据(名称,描述),接口(输入输出),实现(组件的运行规范)
    单个组件为一个docker容器,且不能直接共享内存中的数据,需要对其传递数据就行序列化(输出为字符串或者文件形式)
  • pipeline实验
    实验是一个工作区,可以尝试不同配置和逻辑
  • pipeline运行
    run是单个pipelin的单次执行,可查看日志,状态等
  • 运行触发器
    定期触发新的运行(只支持时间触发,不太合理)
  • pipeline SDK
    • kfp.compiler: 将管道编译为yaml的方法
    • kfp.client: python客户端,创建运行管道
    • kfp.components: 管道组件交互的方法
    • kfp.dsl: 定义管道和组件并与之交互的域特定语言

2. notebook

  为用户创建一个独立的 jupyter notebook 工具,进行算法开发。

3. Katib

  katib是一个automl开源项目,支持超参数调优,提前停止,神经网络搜索。
  • 超参数调优:这是一个迭代过程,在机器学习的过程中尝试不同参数的不同组合以获取最佳的模型效果。
  • 提前停止:是一个防止过拟合的技术,即在训练过程中监控模型性能指标,当性能不在改善时停止训练以避免过拟合。
  • 神经网络搜索:(NAS)是一种自动化机器学习技术,它可以自动搜索最佳的神经网络架构,以提高机器学习的性能。

4. TensorBoard

是Google开发的模型内部参数跟踪和可视化的调试工具。

5. KFServing

KFServing是一个将模型部署为高性能接口的工具。
  • 自定义资源
  • 自动缩放,网络,运行状态检查
  • 开箱即用部署简单