容器PaaS(Openshift)之机器学习:Kubeflow介绍篇

Kubeflow是什么?
Kubeflow,名字源于 Kubernetes + Tensorflow ,是 Google 为了支持Tensorflow 的部署而推出的开源平台,除了Tensorflow,还支持Pytorch/MPI/MXnet等机器学习引擎。Kubeflow 的目的是使 Kubernetes 上的机器学习变的简单、便捷、以及可扩展。Kubeflow并不会重建其他服务,而是提供一种直接的方式来部署最佳的机器学习开源系统。无论你在哪里运行Kubernetes,你都能够运行Kubeflow。
Kubeflow的使命
Kubeflow的目标是使机器学习(ML)模型尽可能简单地部署到生产中,方法是通过发挥Kubernetes强项。
- 在不同的IaaS上实现简单、可重复的便携式部署(laptop <-> ML rig <-> 训练集群 <-> 生产集群)
- 部署和管理松散耦合的微服务
- 按需求进行扩展
Kubeflow的核心功能
Notebooks
Kubeflow集成了交互式的interactive Jupyter notebooks,可以定制化notebook的部署,以及定制数据科学所需要的计算资源。本地实验完成后,可以部署到云端。
TensorFlow model training
Kubeflow提供了以个定制化的TensorFlow训练job,可以使用这些job在Kubernates上训练机器学习模型。特别是,Kubeflow的使用者可以处理分布式TensorFlow培训job,可以配置训练使用CPU或GPU,并适应不同的集群大小。
Model serving
Kubeflow支持TensorFlow Model Serving容器,用于向Kubernetes导出经过培训的TensorFlow模型。Kubeflow还集成了Seldon Core,Seldon Core是一个开源平台,用于在Kubernetes上部署机器学习模型,以及NVIDIA TensorRT接口服务,以便在大规模部署机器学习模型时最大限度地利用GPU。
Pipelines
Kubeflow Pipelines是部署和管理端到端机器学习工作流的全面解决方案。Kubeflwo Pipelines用于快速和可靠的试验。可以安排和比较执行,并检查每一次执行的详细报告。
Multi-framework
Kubeflow超越了之前的开发计划,除了支持TensorFlow,也在努力支持PyTorch, MXNet, Chainer等。另外Kubeflow集成了Istio和Ambassador作为网关,以及集成了Nuclio作为快速、多用途的无服务器化框架,以及Pachyderm来管理Pipelines。
Kubeflow的使用场景
根据上面的功能介绍,下面的场景,应该考虑使用Kubeflow:
- 不同环境(例如本地,内部和云上)中训练/提供TensorFlow模型
- 使用Jupyter notebooks来管理TensorFlow训练jobs
- 启动使用个人计算机上不可用的资源(例如额外的CPU或GPU)来训练jobs。
- 将TensorFlow与其他进程结合使用
o 例如,使用tensorflow/agents来运行模拟以生成用于训练强化学习模型的数据。