随着 TensorFlow 的发布开源,面向开源软件的机器学习科研活动变得越来越活跃,已成为机器学习最佳选择。同时:
- 机器学习与深度学习框架,已经成为软件工程师的标准配置;
- 随着 arXiv 变得越来越流行,很多论文在国际会议同行评审前就已经被发布。
因此,让企业能更快的验证最新科研算法; - 越来越多的研究员都在开始研究机器学习,学院内的机器学习科研领域逐渐变为红海;
- 创建一个最佳算法,但如何部署实现却是秘密 —— 这种保守观念已经过时;
同时,Kubernetes 已经迅速成为在任何地方部署复杂工作负载的混合解决方案。从无状态服务开始,科研机构与企业已逐步开始将复杂的工作负载转移到该平台上,充分利用 Kubernetes 提供的丰富的 API,可靠性和性能。其中,发展最为显著的领域非机器学习莫属。
然而,构建任何企业级机器学习系统,都涉及各种组件,通常是厂家组件加上手动配置的混合解决方案。要连接和管理这些服务,甚至涉及稍微复杂的设置,都会对采用这些机器学习应用带来了巨大的复杂障碍。基础设施工程师通常需要大量时间进行手动调整与部署对应的解决方案,然后才能测试单个模型。
更糟糕的是,这些操作与他们部署的集群紧密相关,以至于堆栈不可移动。这意味着:如果没有重新架构,将一个机器学习模型从笔记本电脑迁移到高度可扩展的云集群上,实际上是不可能的。所有这些差异耗费大量的精力,并为每次架构转换引入错误的机会。
为了应对这些挑战,Google 发布了:
Kubeflow 机器学习工具库,致力于使运行在 Kubernetes 上的机器学习变的更轻松、便捷和可扩展;Kubeflow 的目标不是重建其他服务,而是提供一种简便的方式找到最好的 OSS 解决方案。
因此,Kubeflow 的主要目标为:
- 在不同的基础设施上实现简单、可重复的敏捷部署,如:
(笔记本<-> 机器学习装备 <-> 训练集群 <-> 生产集群) - 部署和管理松散耦合的微服务
- 根据需求进行扩展
最后,你可以利用 Katacoda 提供的演示环境,体验如何在 Kubernetes 上部署 Kubeflow,及其带来的极速便利。