背景介绍
随着人工智能技术在爱奇艺视频业务线的广泛应用,深度学习算法在云端的部署对计算资源,尤其是 GPU 资源的需求也在飞速增长。如何提高深度学习应用部署效率,降低云平台运行成本,帮助算法及业务团队快速落地应用和服务,让 AI 发挥真正的生产力,是深度学习云平台团队努力的目标 。
从基础架构的角度,GPU资源的紧缺和GPU 利用率的不足是我们面临的主要挑战。由于大量的算法训练及推理服务需求,云端 GPU 资源经常处于短缺状态;而使用 CPU 进行的推理服务常常由于性能问题,无法满足服务指标。除此之外,线上服务通常有较高的实时性要求,需要独占 GPU,但由于较低的 QPS,GPU 利用率经常处于较低的状态(\u0026lt;20%)。
在此背景下,我们尝试进行了基于CPU的深度学习推理服务优化,通过提升推理服务在CPU上的性能,完成服务从GPU迁移到CPU上的目的,以利用集群中大量的 CPU服务器,同时节省GPU计算资源 。
1. 深度学习推理服务及优化流程
1.1 什么是深度学习推理服务?
深度学习推理服务通常是指将训练好的深度学习模型部署到云端,并对外提供gRPC/HTTP接口请求的服务。推理服务内部实现的功能包括模型加载,模型版本管理,批处理及多路支持,以及服务接口的封装等,如图2所示:
业界常用的深度学习推理服务框架包括 Google的tensorflow serving、Nvidia的Tensor RT inference server,Amazon的Elastic Inference等。目前爱奇艺深度学习云平台(Jarvis)提供以tensorflow serving 为框架的自动推理服务部署功能,已支持的深度学习模型包括 tensorflow,caffe,caffe2,mxnet,tensorrt 等,未来还会支持包括 openvino,pytorch。除此之外,业务团队也可以根据自身需求实现和定制特定的深度学习服务化容器,并通过QAE进行服务的部署和管理。
1.2 服务优化的流程是怎样的?
服务优化流程如图3所示,是一个不断朝优化目标迭代的过程。