阅读全文请点击
在过去的几个月中,我和多个企业的数据科学团队进行了多次合作,也看到越来越多的机器学习和深度学习框架被广泛应用到实际生活中。
与大数据分析和数据科学中的其他用例一样,这些团队希望在BlueData EPIC软件
平台上的Docker容器中运行他们最喜欢的深度学习框架和工具。因此,我的一部分工作就是尝试使用这些新工具,确保在我们的平台上能够运行,并且能够帮助这些团队开发出可以解决一些问题的新的功能。
TensorFlow
是深度学习和机器学习最流行的开源框架之一。TensorFlow最初是由Google研究团队开发的并致力于解决深度神经网络的机器学习研究。另外,TensorFlow也适用于许多其他应用场景:图像识别,自由文本数据的自然语言处理以及威胁检测和监视等。
“TensorFlow是一个用于对一系列任务进行机器学习
的开源软件库,它是一个构建和训练神经网络来检测、解读模式和相关性的系统,它与人类学习和推理相似(但不一样)。”——维基百科
TensorFlow可以在各种异构系统(包括CPU和GPU)上对计算资源进行合理分配。与我合作过的几个数据科学团队使用GPU
来提高TensorFlow的计算速度,但GPU价格昂贵,他们需要对TensorFlow所占用的资源进行认真的
管理
。
部署TensorFlow的注意事项
以下是部署数据科学应用程序和TensorFlow时的一些注意事项(尤其是在企业大规模部署时更应该注意):
1.如何对部署的复杂性进行管理,例如在OS,内核库和TensorFlow不同版本之间进行部署。
2.如何在作业期间支持创建临时集群。
3.如何隔离正在使用的资源并阻止同时队同一资源的访问请求。
4.如何在共享的多租户环境中对GPU和CPU资源进行管理和分配。
BlueData EPIC软件平台
就可以解决这些问题,它能够按照数据科学团队的需要访问各种不同的大数据分析、数据科学、机器学习和深度学习工具。在一个灵活、弹性和安全的多租户架构中使用Docker容器,BDaaS(Big-Data-as-a-Service)软件平台可以支持大规模分布式数据科学和深度学习用例。
BlueData的最新版本可以支持启动采用GPU加速的集群,并且支持TensorFlow在GPU或Intel架构的CPU上进行深度学习。数据科学家可以在BlueData EPIC软件平台上启动即时TensorFlow集群在Docker容器上进行深度学习。BlueData支持在Intel Xeon硬件和Intel MKL上运行基于CPU的TensorFlow,也支持采用NVIDIA CUDA库、CUDA扩展以及用于Docker容器的字符设备映射的基于GPU的TensorFlow。
BlueData EPIC软件平台可以为TensorFlow提供自助服务、弹性和安全环境,无论是在本地、公共云还是在二者的混合结构中都拥有同样的界面,不管其底层架构多么不同,用户都会有相同的用户体验。
如下图所示,用户可以像用于其他大数据分析、数据科学和机器学习环境一样,能够很容易地将带有BigDL的即时TensorFlow集群在BlueData软件平台上进行深度学习。并且,用户可以指定在TensorFlow运行的Docker容器放置在有GPU还是CPU配置的基础架构,以及在公共云还是在本地。
按需创建TensorFlow集群
在BlueData EPIC软件平台上,用户只需点击几下鼠标即可根据自己的需求创建TensorFlow群集。BlueData的最新版本引入主机标签,用户可以创建具有主机标记的基于GPU或CPU的TensorFlow集群,这些主机标记为特定工作负载指定所需要的硬件,如下图所示。
一旦创建完成,TensorFlow集群将拥有一个或多个Docker容器节点,这些Docker容器使用TensorFlow软件和相应的GPU和/或CPU加速库进行部署。例如,基于GPU的TensorFlow群集将在Docker容器内具有NVIDIA CUDA和CUDA扩展;而基于CPU的TensorFlow群集则在Docker容器中具有Intel MKL和Jupyter Notebook扩展。