Kubeflow学习指南:生产级机器学习系统实现
上QQ阅读APP看书,第一时间看更新

1.5 Kubeflow的设计和核心组件

机器学习领域存在诸多库、工具集和框架。Kubeflow并不寻求重新发明轮子,也不提供“一刀切”的解决方案。相反,Kubeflow允许机器学习从业者根据特定需求组合和定制技术栈,以简化大规模构建和部署机器学习系统的过程。这使得数据科学家可以将精力集中在模型开发上,而不是基础设施上。

Kubeflow试图通过三个特征来简化机器学习:可组合性、可移植性和可扩展性。

可组合性

Kubeflow的核心组件来自机器学习从业者已经熟悉的数据科学工具。它们可以独立使用,以促进机器学习的特定阶段,也可以组合在一起形成端到端Pipeline。

可移植性

通过基于容器的设计并利用Kubernetes及其云原生架构,Kubeflow不限制开发环境。你可以在笔记本电脑上进行实验和原型设计,并毫不费力地将其部署到生产中。

可扩展性

通过使用Kubernetes,Kubeflow可以根据集群上的需求,通过改变底层容器与机器的数量和大小来动态扩展[1]

这些特征对MDLC的不同部分至关重要。随着数据集的增长,可扩展性变得非常重要。可移植性对于避免厂商锁定非常重要。可组合性让你可以自由搭配最佳工具完成作业。

让我们快速看看Kubeflow的部分组件,以及它们如何支持这些特征。

[1] 像Minikube这样的本地集群只能使用一台机器,但大多数云集群可以根据需要动态改变机器的类别和数量。