利用 TensorFlow Serving 系统在生产环境中运行模型
来自: http://wiki.jikexueyuan.com/project/geekdigest/TensorFlow-Serving.html
译者:李鑫
原文: Running your models in production with TensorFlow Serving
本文为极客学院Wiki组织翻译,转载请注明出处。
时间:2016.3.4
机器学习技术支撑着许多 Google 产品的功能,比如: Google 应用中的语音识别 , 收件箱的智能回复 ,以及 Google 照片搜索 ,等等。尽管软件行业几十年中积累起的无数经验促成了很多用于构建并支持产品的最佳实践,但基于机器学习的服务却还是带来了 一些新颖而有趣的挑战 。如今,专为解决这些挑战的系统终于出现了,这就是 TensorFlow Serving 。TensorFlow Serving 是一种用于机器学习模型的高性能开源服务系统,专为生产环境而设计,并针对 TensorFlow 进行了优化处理。
TensorFlow Serving 系统非常适用于大规模运行能够基于真实情况的数据并会发生动态改变的多重模型。它能够实现:
- 模型生命周期管理。
- 使用多重算法进行试验。
- GPU 资源的有效使用。
TensorFlow Serving 能够简化并加速从模型到生产的过程。它能实现在服务器架构和 API 保持不变的情况下,安全地部署新模型并 运行试验 。除了原生集成 TensorFlow,还可以扩展服务其他类型的模型。下图显示了简化的监督学习过程,向 learner 输入训练数据,然后输出模型:
一旦经过 验证 后,新模型版本定型,就可以部署到服务系统,如下图所示:
TensorFlow Serving 使用(之前训练的)模型来实施推理——基于客户端呈现数据的预测。因为客户端通常会使用 远程过程调用 (RPC)接口来与服务系统通信,TensorFlow Serving 提供了一种基于 gRPC 的参考型前端实现,这是一种 Google 开发的高性能开源 RPC 架构。当新数据可用或改进模型时,加载并迭代模型是很常见的。事实上,在谷歌,许多管线经常运行,一旦当新数据可用时,就会产生新版本的模型。
TensorFlow Serving 由 C++ 编写而成,支持 Linux。TensorFlow Serving 引入的开销是非常小的。我们在一个有着 16个 vCPU 的英特尔至强 E5 2.6 GHz 的机器上进行了测试,执行每核每秒约 100,000 次查询,不包括 gRPC 和 TensorFlow 推理处理时间。我们非常激动地向大家分享这个遵守 Apache 2.0 开源协议的 TensorFlow 重要组件。非常希望大家能在 Stack Overflow 和 GitHub 上提问或请求开发一些功能。上手很简单,只需复制 github.com/tensorflow/serving 中的代码,然后签出 教程 即可。随着我们对 TensorFlow 的继续开发,你一定会了解到更多有关内容,因为这大概是世界上最好用的机器学习工具包了。如果希望及时了解最新进展,请关注 @googleresearch 或 +ResearchatGoogle ,以及 2016 年 3 月, Jeff Dean 将在 GCP Next 2016 上的主题演讲。
</div>