Docker在云平台上的最佳实践: 当容器服务遇到深度学习

12月9日云栖计算之旅线下沙龙第2期《Docker在云平台上的最佳实践》,阿里云技术专家必嘫给大家带来了“当容器服务遇到了深度学习”的演讲。本文主要从深度学习的兴起开始谈起,进而介绍了Docker技术、阿里云容器服务,重点介绍了支持云上的高性能计算应用需要哪些,包括GPU的调度、隔离和监控。

视频回顾

深度学习

人工智能已经进入了深度学习时代。传统的让机器自动化的方式已经不再适合解决一些问题,机器学习开始兴起,让机器像小孩子一样自己去认识世界。而深度学习本身是机器学习的一个算法,深度学习想用数字化的方式模拟神经元进行运算,对于变量的抽取完全是基于数据的。

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第1张图片

基于深度学习的机器视觉能力上已经接近人类。传统的机器学习方法在2011年之前一直使用,识别的准确率不会高过77.5%;2012年开始引入深度学习,识别准确率得到大大提升,错误率接近5%。在ILSVRC的ImageNet计算机视觉系统识别项目上,基于深度学习的机器视觉能力已经接近人类(如上图)。今年初AlphaGo与韩国棋手李世石4:1的比赛结果,再次向人们展示了人工智能的强大之处。

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第2张图片

深度学习起起伏伏,1960年代开始有了单层神经网络,80年代算法模型已经相对完备,2009年GPU的出现,提供了巨大的计算量,使深度学习真正的应用起来。

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第3张图片

深度学习许多算法依赖于矩阵的乘法,是CPU速度的45倍左右。但是,当深度学习应用越来越广泛时,提供数据量越来越巨大时,目前常用的单GPU并不满足深度学习井喷式的计算需求。

当我们进行GPU资源管理时,要向韩信点兵一样多多益善。但是,并不是对每个人来说,GPU越多,管理能力就越高,而是有没有能力将集群管理起来,我们需要对GPU进行统一规划和管理的角色存在。

Docker

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第4张图片

Docker搭建了一个从软件、开发、测试、交付、到运维的潜在规约,将应用的运行环境固化,一层层向下交付。一个Dcoker镜像只能跑一个容器,但多数复杂应用并不是一个容器能够完成的,这需要Docker Compose完成,Docker提供了资源分配方式,Docker Engine通过Docker Registry分配部署的。

阿里云容器服务

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第5张图片

阿里云容器服务底层为容器层,不存在公有云专有云分隔,相当于无边界计算,可以在任何环境下部署;阿里云在调度上进行了扩展,在阿里云不同地区部署容器服务时,可以根据高可用性把同样两个前端Web部署到不同地方,对GPU的支持,阿里云也在已有Swarm基础上进行了扩展,用户可以支持真实的应用软件的开发部署场景,阿里云也将云监控、日志服务等集成在了一起。

GPU

为了能够支持云上的高性能计算集群,我们需要按GPU调度、按GPU隔离、按GPU监控。

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第6张图片

当向一块机器要两块GPU卡时,选择两块不同的GPU,性能是完全不一样的。

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第7张图片

当同时调度GPU资源和CPU资源的时候,当指派多个GPU资源给一个任务时,当调度多个GPU任务完成同一个工作的时候,和GPU相关的拓扑结构很重要。

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第8张图片

阿里云容器服务支持GPU的调度,对于最终用户来说是一个透明的过程,用户只需要在label下描述需要一个GPU,我们就会负责帮您选择要使用的GPU,并将其隔离好。

GPU监控

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第9张图片

当使用GPU运算时,我们会让用户观测到GPU状况,监控GPU关键指标包括资源使用量、内存使用量以及温度等;我们也会自动恢复,kapacitor触发容器服务弹性伸缩功能,OSS保存checkpoint或Model。

 

云上的高性能计算应用还需要什么

无缝连接阿里云的云服务,构建完整的深度学习应用。

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第10张图片

简单的深度学习离线训练架构需要有HPC、需要在GPU上有应用、容器服务在调度上有优势,需要分布式存储把数据、计算隔离开;复杂的深度学习离线训练架构在这个基础上,还需要数据库、大数据的服务。

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第11张图片

简单的深度学习在线预测架构,首先要保证高可用性,前端需要负载均衡,后端需要OSS;复杂的深度学习在线预测架构还需要云监控和云盾以及数据库。

基于HPC的深度学习解决方案

Docker在云平台上的最佳实践: 当容器服务遇到深度学习_第12张图片

其中包括TensorFlow应用、Caffe应用,结合容器服务,释放HPC威力,快速创新、持续进化,打通从学习到服务价值链路。

 

必嘫:阿里云技术专家,在应用性能监控和软件交付方面有丰富的实践经验,目前专注于容器服务,微服务以及机器学习等领域。

 

关于云栖计算之旅

云栖技术之旅,是由阿里云云栖社区主办,整合了阿里集团内部多个领域顶级技术专家与技术资源,通过线下技术培训的方式,为热爱技术的朋友提供一个交流&分享技术观点、碰撞精彩火花的平台。

第1期精彩回顾:https://yq.aliyun.com/articles/62414

第3期预告(12月23日前端专场):https://yq.aliyun.com/promotion/140

 

关于阿里云容器服务

阿里云容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造Docker云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。

阿里云容器服务:https://www.aliyun.com/product/containerservice

 

你可能感兴趣的:(Docker在云平台上的最佳实践: 当容器服务遇到深度学习)