基于分布式缓存加速容器化深度学习的优化方法
2021-09-22张凯车漾
张凯,车漾
阿里巴巴科技(北京)有限公司,北京 100102
1 引言
最近10年,深度学习技术和应用发展风起云涌,百花齐放。尤其在机器视觉、自然语言理解、语音识别等领域,一大批成熟的人工智能模型和服务正落地应用于各行各业。越来越多的行业发掘出大量需求,需要利用企业日积月累的海量业务数据,高效便捷地训练深度学习和机器学习模型。
与此同时,云计算在IaaS、PaaS和SaaS等层次已经发展得相当成熟,并逐步进入云原生时代。在云原生技术体系中,以Docker为代表的Linux容器技术和以Kubernetes为代表的容器编排管理技术在应用开发、交付、运维的生命周期中逐渐成为业界的事实标准。同时,应用微服务架构的自动化部署,运行时动态弹性伸缩,完善的日志、监控、告警等运维体系等,都成为现代软件开发运维的基础需求。
深度学习和人工智能应用往往需要使用大量GPU、张量处理器(tensor processing unit,TPU),甚至神经元处理器(neural processing unit,NPU)这类定制的高性能异构计算设备来迭代处理海量的训练数据,最终得到满足准确率和性能要求的模型。由于数据规模较大、模型复杂度较高,训练过程一般较漫长。因此,优化GPU等异构计算设备的利用效率、加快训练数据处理速度,成为提升深度学习和人工智能应用生产率和成本优化的关键因素。
Kubernetes容器编排管理技术对于GPU、TPU、NPU等高性能异构计算设备资源的支持日趋成熟。考虑到云计算在成本优化、资源规模和弹性伸缩方面的优势,配合Docker容器技术擅长的轻量级和标准化应用交付能力,业界主流的生产人工智能模型和应用的技术方案会采用容器集群结合云计算平台的GPU资源的架构,进行分布式深度学习模型训练。……
