TensorFlow工程师分享了TensorFlow Serving最近的创新进展

近日,Tesorflow软件工程师Noah Fiedel通过本文描述了机器学习模型TensorFlow Serving最近的一些创新进展

TensorFlow Serving是一种灵活的、高性能的机器学习模型。它使得部署新的算法和实验变得更加容易,同时保持了相同的服务器架构和API。而且,它还提供了TensorFlow模型的开箱即用的集成,但是可以很容易地扩展为其他类型的模型和数据。

自2016年2月开源TensorFlow Serving发布以来,我们已经做出了一些重大的改进。在此之前,谷歌内部的TensorFlow用户必须从零开始创建自己的服务系统。尽管服务在一开始看起来很容易,但一次性的服务解决方案很快就会变得复杂。机器学习(ML)服务系统需要支持模型版本控制(对带有回滚(rollback)选项的模型更新)和多个模型(通过A/B测试进行试验),同时确保并发模型(concurrent model)在低延迟的硬件加速器(GPU和TPU)上实现高吞吐量。因此,我们开始创建一个单独的TensorFlow Serving软件栈。

我们决定从一开始就把它变成开源的,开发从2015年9月开始。几个月后,我们创建了最初的端到端工作系统,然后就是上文提到的在2016年2月发布了我们的开源版本。

在过去一年半的时间里,TensorFlow Serving逐步拥有了先进的性能、最佳的实践和标准:

  • 开箱即用的优化服务和可定制性:我们现在提供了一个预先构建的规范化服务二进制文件,用AVX对CPU进行了优化,因此开发人员不需要从我们的库中组装他们自己的二进制文件,除非他们有特殊的需求。同时,我们添加了一个基于注册表(registry)的框架,允许我们的库被用于自定义(甚至是非Tensorflow)服务场景。
  • 多模型服务:从一个模型到多个并发的服务模型,呈现出几个性能障碍。我们通过(1)在隔离的线程池中加载多个模型,以避免在其他模型中出现延迟峰值;(2)在服务器启动时,加速所有模型的初始加载;(3)多模型批处理到多路复用硬件加速器(GPU/TPU)。
  • 标准化的模型格式:我们将SavedModel添加到TensorFlow 1.0中,为社群提供了一种可以跨训练和服务工作的标准的模型格式。
  • 易于使用的推理API:我们为常见的推理任务(分类、回归)发布了易于使用的API,而且这些API适用于我们的应用。为了支持更高级的用例,我们支持一个较低级的基于tensora的API(预测)和一个支持多任务建模的新的多推理(multi-inference)API。

我们所有的工作都是通过与:(a)Google的ML SRE团队的紧密合作来实现的,这个团队有助于确保我们的鲁棒性并满足内部服务等级协议(SLA);(b)其他谷歌机器学习基础设施团队,包括广告服务和TFX(一个基于Tensorflow的大规模的机器学习平台);(c)像Google Play这样的应用团队;(d)加州大学伯克利分校上升实验室的合作伙伴;(e)我们的开源用户群和贡献者。

TensorFlow Serving目前正在为1100多个项目,包括Google的Cloud ML Prediction,每秒处理数千万次的推论。我们的核心服务代码可以通过我们的开源获得。

地址:https://github.com/tensorflow/serving/releases

展望未来,我们的工作还远未完成,我们正在探索几种创新的途径。今天,我很高兴能在实验领域分享TensorFlow Serving的早期进展:

  • 粒度批处理(Granular batching):我们在专门的硬件(GPU和TPU)上实现高吞吐量的关键技术是“批处理”:为了效率而联合处理多个示例。我们正在开发技术和最佳实践来改进批处理:(a)使批处理只针对计算的GPU/TPU部分,以达到最大效率;(b)允许在递归神经网络中进行批处理,用于处理序列数据,例如文本和事件序列。我们正在尝试使用 Batch/Unbatch对任意子图进行批处理。
  • 分布式模型服务:因为这些模型太大而不能放在一个服务器节点上,或者以一种内存有效的方式共享子模型,所以我们将模型分片(sharding)技术作为一种处理模型的方法。我们最近在生产中推出了一个1TB+的模型,并取得了良好的效果,我们希望能尽快开源这一功能。

TensorFlow Serving项目地址:https://github.com/tensorflow/serving

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-11-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏祝威廉

Spark团队新作MLFlow 解决了什么问题

中午的时候看到了Spark团队新作MLFlow,因为我本身也在做类似的解决方案MLSQL,自然要看看Meitai是怎么做的。所以第一时间把MLFlow相关文档 ...

712
来自专栏新智元

【解读谷歌TFX】基于TensorFlow可大规模扩展的机器学习平台

【新智元导读】 作者详细分析了Google通用机器学习平台和其实现过程。通过将上述组件集成到一个平台中,能够对组件进行标准化,简化平台配置,并将生产时间从数月缩...

3064
来自专栏人工智能头条

基于PredictionIO的推荐引擎打造,及大规模多标签分类探索

1743
来自专栏机器之心

专栏 | 百度PaddlePaddle的新特性与大规模稀疏数据分布式模型训练

百度深度学习框架 PaddlePaddle 自 2016 年开源以来,受到了业界的广泛关注,PaddlePaddle 社区更是汇集了一大批 AI 技术开发者。开...

953
来自专栏专知

当深度学习遇见大数据:一文概览BDL学习框架

【导读】深度学习的出现让许多机器学习从业者将目光从Spark等大数据计算框架转移到了TensorFlow、PyTorch等深度学习框架上。然而,大数据框架与深度...

1045
来自专栏媒矿工厂

Netflix将VP9应用于移动视频流编码

A.采用的两种编码标准: 1. VP9: VP9是一款由Google开发的免费开源的视频编解码器,与最优的H.264编码器相比具有将近50%的性...

3654
来自专栏杨海力的专栏

Spark MLlib 算法系列之 LR

Spark之所以在机器学习方面具有得天独厚的优势,有以下几点原因:

2902
来自专栏新智元

Intel-analytics三大深度学习开源库: DL应用直接用于Spark或Hadoop集群

【新智元导读】本文带来Github上账号为intel-analytics发布的三大深度学习库的介绍。 BigDL 什么是BigDL? BigDL是一个基于Apa...

3195
来自专栏IT大咖说

基于Apache Spark以BigDL搭建可扩展的分布式深度学习框架

1643
来自专栏新智元

【TensorFlow开源2年官方回顾】下一个重要方向是分布式模型服务

【新智元导读】 TensorFlow Serving 开源的一年半时间里取得了许多进展和性能提升,包括开箱即用的优化服务和可定制性,多模型服务,标准化模型格式,...

2747

扫码关注云+社区