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 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1241
来自专栏跟着阿笨一起玩NET

C# 通过HttpWebRequest在后台对WebService进行调用

http://www.cnblogs.com/macroxu-1982/archive/2009/12/23/1630415.html

2832
来自专栏跟着阿笨一起玩NET

winform treeView 数据绑定

982
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

962
来自专栏成长道路

JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

2520
来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2369
来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

20510
来自专栏跟着阿笨一起玩NET

C#巧用Excel模版变成把Table打印出来

转载:http://blog.csdn.net/gwblue/article/details/38865525

1272
来自专栏菩提树下的杨过

winform中linkLabel的用法(示例)

private void Form1_Load(object sender, EventArgs e)         {             this...

1935
来自专栏c#开发者

jquery easyui datagrid mvc server端分页排序筛选的实现

1自定义一个ModelBinder public class filterRule { public string field { g...

4199

扫码关注云+社区