利用docker部署深度学习模型的一个最佳实践
最近团队的模型部署上线终于全面开始用上docker了,这感觉,真香!
讲道理,docker是天然的微服务,确实是能敏捷高效的解决深度学习这一块的几个痛点。
部分神经网络框架比如caffe依赖过重,安装困难。各种网络模型未做工程化优化,部署困难。
tensorflow等框架对GPU等硬件的占用难以灵活控制。
对于做应用来说,这些问题诸如对GPU的硬件的管理,对复杂依赖的部署,而这些正好就是docker的强项。而python本身表达能力强,可以以很短的代码量达成我们的目的。
部署
具体的部署步骤涉及这几个工具链:
Dockerfile进行模型的镜像部署。docker-py进行container的启动和关闭。
grpc和进行模型的外部通信。
python的with语句表达模型的加载和资源的释放。
gitlab进行内网的代码分发和版本控制。
整个接口的调用精简