机器学习容器化:TensorFlow、Kubernetes和Kubeflow。通过将具有预定答案的数据输入数学模型,计算机可以训练自己预测未来的未知输入集。虽然ML迄今已成功解决特定任务,但分析具有更复杂参数的数据需要可大规模部署的模型以简化操作。这种类型的机器学习将使计算机能够从更大量的信息中找到并自动化解决方案。由于这些原因,预计到2020年,人工智能和机器学习将成为推动云计算采用的主要催化剂。ML需要大规模高效学习并与云原生技术(尤其是容器化)集成,以便处理云中可用的大量信息。为此,谷歌最近宣布开发Kubeflow,这是一个构建在Kubernetes之上的可组合、可移植和可扩展的ML堆栈。它提供了一个开源平台,用于将ML模型连接到容器,同时执行数据和计算,而不是在覆盖范围内。Kubeflow有助于解决实施ML堆栈的固有挑战。构建生产级ML解决方案需要导入、转换和可视化数据,然后大规模构建、验证、训练和部署模型。这些堆栈通常使用不同的工具构建,使算法管理变得复杂且不一致。Kubeflow1.0提供的软件包将各种ML工具(尤其是TensorFlow和JupyterHub)组合到一个堆栈中,可以使用Kubernetes轻松跨多云环境传输。TensorFlowKubeflow依赖于开源编程系统TensorFlow来构建机器学习模型。它的软件库使用张量几何以状态数据流图的形式表示数据之间的线性关系。它抽象出硬件平台,允许模型在CPU(中央处理单元)、GPU(图形处理单元)或TPU(张量处理单元)上运行。这些共同构成了低精度算术计算的高吞吐量的基础。这种灵活的架构允许它聚合来自各种对象的信息,范围从桌面系统、集群、服务器、移动设备到边缘设备。尽管TensorFlow使用起来既困难又复杂,但它非常适合创建需要可移植、可扩展数据管理的高级复杂ML模型。JupyterHubKubeflow直接从Jupyter笔记本执行TensorFlow计算图。Jupyter笔记本是容器友好的,可以在Kubernetes或任何类型的开源基础设施上运行。它们为用户提供环境和资源以轻松实施ML模型,而无需安装和维护开销。他们的文档样式格式将代码和markdown嵌入到同一个文件中,提供了计算可见性。JupyterHub允许工程师立即执行TensorFlow图形或存储它们供以后使用,从而使工程师能够更好地控制TensorFlow模型的配置。Kubeflow依靠JupyterHub进行协作和交互式训练。Kubeflow的堆栈包括几个补充TensorFlow模型执行的附加解决方案。Argo用于工作流调度,SeldonCore用于复杂推理和非TensorFlowPython模型,Ambassador用作反向代理。该堆栈与Kubernetes集成,使工程师能够高效地大规模开发、训练和部署ML模型。KubernetesKubernetes是一个可靠的开源容器编排工具。它将应用程序设计标准化为模块化、可移植和可扩展的微服务,以便将复杂的工作负载部署到不同的环境中。它采用丰富的API,可自动执行众多操作功能。Kubeflow的平台利用Kubernetes来简化TensorFlow模型的操作并使其执行云原生。可移植性和可扩展性:Kubernetes允许将TensorFlow模型作为微服务进行模块化管理,从而使其具有高度可移植性和可扩展性。它们可以在不同的环境、平台和云提供商之间轻松移动。传统上,ML堆栈是固定的,将模型及其相关依赖项从笔记本电脑迁移到云集群的过程需要在重新架构方面付出大量努力。Kubeflow使这些算法能够在执行时尽可能快地访问数据。自动化和易操作性:Kubernetes提供丰富的声明式API库来管理微服务,帮助应用程序采用端到端自动化。Kubernetes处理资源管理、工作分配和其他历来耗时的操作问题。Kubeflow允许工程师专注于编写ML算法而不是管理操作。云端有很多信息,但并不是所有的信息都可以被机器学习所利用。Kubeflow1.0承诺ML可以跟上云中数据不断增长的步伐。它将ML集成到容器编排层,提供模型更强的可操作性、可扩展性和可移植性。它提供了一个完整的容器化堆栈,可以快速轻松地部署。Kubeflow1.0使计算机能够使用可靠且全面的堆栈在更大的数据集上进行自我训练。了解Kubernetes是使用Kubeflow无缝部署ML模型的第一步。原标题:机器学习的容器化:TensorFlow、Kubernetes和Kubeflow,作者:SyedAhmed
