上QQ阅读APP看书,第一时间看更新
1.5 Kubeflow的设计和核心组件
机器学习领域存在诸多库、工具集和框架。Kubeflow并不寻求重新发明轮子,也不提供“一刀切”的解决方案。相反,Kubeflow允许机器学习从业者根据特定需求组合和定制技术栈,以简化大规模构建和部署机器学习系统的过程。这使得数据科学家可以将精力集中在模型开发上,而不是基础设施上。
Kubeflow试图通过三个特征来简化机器学习:可组合性、可移植性和可扩展性。
可组合性
Kubeflow的核心组件来自机器学习从业者已经熟悉的数据科学工具。它们可以独立使用,以促进机器学习的特定阶段,也可以组合在一起形成端到端Pipeline。
可移植性
通过基于容器的设计并利用Kubernetes及其云原生架构,Kubeflow不限制开发环境。你可以在笔记本电脑上进行实验和原型设计,并毫不费力地将其部署到生产中。
可扩展性
通过使用Kubernetes,Kubeflow可以根据集群上的需求,通过改变底层容器与机器的数量和大小来动态扩展[1]。
这些特征对MDLC的不同部分至关重要。随着数据集的增长,可扩展性变得非常重要。可移植性对于避免厂商锁定非常重要。可组合性让你可以自由搭配最佳工具完成作业。
让我们快速看看Kubeflow的部分组件,以及它们如何支持这些特征。
[1] 像Minikube这样的本地集群只能使用一台机器,但大多数云集群可以根据需要动态改变机器的类别和数量。