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

相关文章

来自专栏机器之心

业界 | Apache MXNet 发布 v0.11.0版,支持苹果Core ML和Keras v1.2

选自AWS 机器之心编译 参与:黄小天、路雪 近日,孵化于 Apache 软件基金会 Apache MXNet 发布了 v0.11.0 最终测试版本,它不仅具有...

31513
来自专栏应兆康的专栏

9. 优化指标和满足指标

1351
来自专栏达观数据

【经验分享】点击模型:达观数据提升算法精度的利器

? 在搜索、推荐、广告引擎中,系统会通过复杂算法生成一个最终的结果列表。用户在看到这个结果列表时,未必都会对排序满意,比如有时觉得排序的顺序有问题,或者发现一...

46810
来自专栏人工智能头条

用机器学习怎样鉴别不可描述的网站

前两天教师节,人工智能头条的某个精神股东粉群里,大家纷纷向当年为我们启蒙、给我们带来快乐的老师们表达感激之情。

1332
来自专栏目标检测和深度学习

资源 | Texture:一个优雅的开源学术论文书写工具

机器之心整理 作者:思源 近日,Substance 在 GitHub 上开源了一个用于结构文本的文字处理工具 Texture,他们表示该工具像 LaTeX 一样...

36410
来自专栏深度学习之tensorflow实战篇

IBM SPSS Modeler Social Network Analysis 的介绍和日常应用

IBM SPSS Modeler Social Network Analysis,中文叫做社交网络分析,本文将一律简称 SNA。 引言 IBM Business...

30410
来自专栏量子位

谷歌终于推出TensorFlow Lite,实现在移动设备端部署AI

安妮 编译整理 量子位 出品 | 公众号 QbitAI 还得从半年前说起。 今年5月的谷歌I/O大会上,安卓工程副总裁Dave Burke宣布将推出一个专门为移...

3089
来自专栏AI科技大本营的专栏

手机也能直接玩机器学习了?来,让大神手把手教你

对于各种热门的机器学习、深度学习课程,你一定了解过不少了。 但上课之后,如何把学出来的这些新方法用在你的工作项目?如何让你的移动应用也能具备机器学习、深度学习...

3949
来自专栏机器人网

英特尔Movidius神经元计算棒(NCS)基于ROS的实现与封装

如今,人工智能的热潮正在席卷各行各业,而计算力和数据、算法一同支撑着人工智能的蓬勃发展。作为人工智能的一个重要分支, 深度学习以其良好的表现,越来越受到业界的广...

992
来自专栏腾讯技术工程官方号的专栏

如何节省 1TB 图片带宽?解密极致图像压缩

在不断出现的新格式被逐步应用之后,兼容性最好的传统老格式 JPEG 依然地位高居不下占据大幅带宽,如何在老格式上也继续挖掘优化点?

73310

扫码关注云+社区