【kubeflow文档】kubeflow介绍与架构

1. kubeflow介绍

     Kubeflow项目致力于使机器学习(ML)工作流在Kubernetes上的部署变得简单、可移植和可扩展。目标不是重新创建其他服务,而是提供一种直接的方法,将ML的开源系统部署到不同的基础设施中。无论在哪里运行Kubernetes,都能够运行Kubeflow。

        下图显示了Kubeflow的主要组件,涵盖了Kubernetes之上ML生命周期的每个步骤。

1.1 What is Kubeflow?

     Kubeflow是用于Kubernetes的机器学习工具包。要使用Kubeflow,基本工作流程是:

  • 下载并部署运行Kubeflow二进制文件。
  • 自定义生成的配置文件。
  • 运行指定的脚本,将容器部署到指定的环境中。

    您可以调整配置以选择要用于ML工作流的每个阶段的平台和服务:

  • 数据准备
  • 模型训练
  • 预测服务
  • 服务管理

     可以选择在本地或云环境中部署Kubernetes工作负载。

1.2 Kubeflow任务

        目标是通过让Kubernetes做擅长的事情,扩展机器学习(ML)模型并尽可能简单将其部署到生产中:

  • 在多样化的基础设施上可以简单、可重复、可移植的部署(例如,在笔记本电脑上进行实验,然后移到本地集群或云)
  • 部署和管理松散耦合的微服务
  • 根据需求进行扩展

        由于ML从业者使用各种各样的工具,其中一个关键目标是根据用户需求(在合理的范围内)定制堆栈,并让系统处理“无聊的东西”。虽然开始时使用的技术范围很窄,但是我们正在处理许多不同的项目,以包括额外的工具。

        最终,我们希望有一组简单的清单,能够在 Kubernetes 已经运行的任何地方轻松地使用 ML 堆栈,并且可以根据它部署到的集群进行自我配置。

2. 架构

        该文档介绍了 Kubeflow 作为开发和部署机器学习(ML)系统的平台。Kubeflow是一个可以为想要构建和实验ML流水线的数据科学家提供的平台。Kubeflow 也为机器学习工程师和运营团队提供服务,将机器学习系统部署到不同的环境中进行开发、测试和生产级服务。

        Kubeflow是Kubernetes的ML工具包。
        下图显示了Kubeflow作为一个平台,用于在Kubernetes上部署ML系统的组件:

        Kubeflow 构建于 Kubernetes 之上,作为部署、扩展和管理复杂系统的系统。使用Kubeflow配置接口(见下文),您可以指定工作流所需的ML工具。然后,您可以将工作流部署到各种云、本地和内部平台,以便进行试验和生产使用。


2.1 介绍ML工作流

        在开发和部署机器学习系统时,机器学习工作流通常由几个阶段组成。开发机器学习系统是一个迭代的过程。您需要评估机器学习工作流程各个阶段的输出,并在必要时对模型和参数应用更改,以确保模型持续产生您需要的结果。

        为了简单起见,以下图表显示了工作流阶段的顺序。工作流末尾的箭头指向流,表示流程的迭代性质:

        在机器学习工作流程中包含实验阶段和生产阶段。

  A. 在实验阶段,基于初始假设开发模型,并反复测试和更新模型以产生你想要的结果:

  • 确定想要机器学习系统解决的问题。
  • 收集和分析训练机器学习模型所需的数据。
  • 选择一个机器学习框架和算法,并对模型的初始版本进行编码。
  • 对数据进行实验,并训练模型。
  • 调整模型的超参数,以确保处理最有效率并获得最准确的结果。

  B. 在生产阶段,您部署了一个执行以下过程的系统:

  • 将数据转换成训练系统所需的格式。为了确保模型在训练和预测过程中行为一致,转换过程在实验阶段和生产阶段必须相同。
  • 训练机器学习模型。
  • 将模型提供给在线预测或批处理运行。
  • 监控模型的性能,并将结果反馈到调整或重新训练模型的过程中。

2.2 ML工作流的Kubeflow组件

        下一张图将Kubeflow添加到工作流中,显示了Kubeflow在每个阶段哪些组件是有用的:

        要了解更多信息,请阅读以下 Kubeflow 组件指南:

  • Kubeflow 包括用于生成和管理  Jupyter notebooks 的服务。使用 noteboks 进行交互式数据科学和机器学习工作流的实验。
  • Kubeflow Pipelines 是一个基于 Docker 容器构建、部署和管理多步骤 ML 工作流的平台。
  • Kubeflow 提供了几个组件,您可以使用它们来构建机器学习培训、超参数调优和跨多个平台服务工作负载。

2.3 ML工作流的例子

        以下图表展示了一个简单的特定机器学习工作流程示例,您可以使用它来训练并提供一个在MNIST数据集上训练的模型: 

3. 安装 kubeflow

        无论您在哪里运行Kubernetes,都应该能够运行Kubeflow。安装Kubeflow主要有两种方法:

  1. Packaged Distributions
  2. Raw Manifests (advanced users)

 3.1 Install with a single command

GitHub - kubeflow/manifests at v1.8-branch

        while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done

        国内环境拉取镜像失败可以增加前缀 :

       gcr.io/ml-pipeline/metadata-envoy:2.0.0-alpha.7

       m.daocloud.io/gcr.io/ml-pipeline/metadata-envoy:2.0.0-alpha.7

        跑起来了,试用看看,跑一些案例。后面看看实现细节

参考:

  https://www.kubeflow.org/docs/started/introduction/  

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Kubeflow 环境搭建需要以下步骤: 1. 安装 Kubernetes 集群:Kubeflow 是在 Kubernetes 上运行的,因此需要先安装 Kubernetes 集群。 2. 安装 Istio:Istio 是一个开源的服务网格,Kubeflow 使用 Istio 来管理服务之间的通信。 3. 安装 Kubeflow:可以使用 Kubeflow 的官方安装脚本或者 Helm Chart 来安装 Kubeflow。 4. 配置 Kubeflow:安装完成后,需要对 Kubeflow 进行一些配置,例如配置存储、配置认证等。 5. 部署应用程序:最后,可以使用 Kubeflow 来部署机器学习应用程序,例如 TensorFlow、PyTorch 等。 以上是 Kubeflow 环境搭建的基本步骤,需要根据实际情况进行调整和优化。 ### 回答2: Kubeflow 是一个用于机器学习工作负载的开源平台,提供了一整套工具和框架,用于在 Kubernetes 上构建、部署和管理机器学习模型。 搭建 Kubeflow 环境需要以下步骤: 1. 安装 Kubernetes:首先需要安装和配置基本的 Kubernetes 集群。可以选择使用工具如 kubeadm、kops 或者 minikube 来简化安装过程。 2. 安装 Istio:Kubeflow 需要使用 Istio 来处理不同的服务之间的通信和流量管理。可以按照官方文档的指导,安装和配置 Istio。 3. 安装 Kubeflow使用 Kubeflow 的命令行工具 kfctl 或者 kustomize 来安装 Kubeflow。根据文档的指示,下载并配置 kfctl 工具,然后运行命令来安装 Kubeflow。 4. 配置 Kubeflow:在安装完成后,需要根据实际需求进行一些额外的配置。例如,配置存储、认证、访问控制等。根据文档的指引,按需进行配置。 5. 运行示例:安装完成后,可以尝试运行一些示例代码来验证环境是否正常工作。文档中提供了一些示例代码和说明,可以按照指导进行测试。 需要注意的是,搭建 Kubeflow 环境可能会涉及较多的配置和安装过程,对于初学者来说可能会比较复杂。建议根据官方文档的指引进行操作,并在遇到问题时寻求帮助,如在 Kubeflow 的 GitHub 社区上提问。 ### 回答3: Kubeflow是一个用于构建机器学习(ML)工作流程的开源项目,它基于Kubernetes,提供了一套丰富的工具和框架,使得在Kubernetes集群上部署、管理和扩展ML工作负载更加容易。 要搭建Kubeflow环境,首先需要一个运行Kubernetes的集群。可以选择自己搭建一个Kubernetes集群,或者使用云服务提供商如GCP、Azure、AWS等的托管Kubernetes服务。在集群上安装Kubeflow的最简单方式是使用Kubeflow工具包(kfctl)。 下面是一个简单的步骤指南: 1. 下载并安装kubectl(用于与Kubernetes集群进行交互)和kfctl工具。 2. 创建一个新的目录以存储Kubeflow配置文件,并导航到该目录。 3. 使用kfctl工具初始化Kubeflow配置:`kfctl init <CONFIG_DIR> --platform=<PLATFORM>`。这里的`<CONFIG_DIR>`是刚刚创建的目录路径,`<PLATFORM>`是运行集群的平台,如"gcp"、"minikube"等。 4. 进入配置目录:`cd <CONFIG_DIR>`。 5. 打开配置文件`kfctl_k8s_istio.yaml`,根据需要进行配置更改。配置选项包括存储选项、Istio配置和其他Kubeflow组件的选项。 6. 部署Kubeflow:`kfctl apply -V -f kfctl_k8s_istio.yaml`。该命令将根据配置文件中的选项,在Kubernetes集群上部署Kubeflow。 7. 等待部署完成。可以使用kubectl命令检查部署状态:`kubectl get all -n kubeflow`。 8. 完成后,可以使用Kubeflow UI访问Kubeflow的各种功能和组件。 请注意,这只是一个简单的搭建指南,实际的环境搭建可能会有更多的配置选项和步骤。建议参考Kubeflow官方文档以获取更详细的说明和指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值