前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【TensorFlow开源2年官方回顾】下一个重要方向是分布式模型服务

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

作者头像
新智元
发布2018-03-21 15:52:41
5860
发布2018-03-21 15:52:41
举报
文章被收录于专栏:新智元新智元
【新智元导读】 TensorFlow Serving 开源的一年半时间里取得了许多进展和性能提升,包括开箱即用的优化服务和可定制性,多模型服务,标准化模型格式,易于使用的推理API等。本文是研究团队撰写的回顾,并提出接下来创新的方向是Granular batching和分布式模型服务。

自从2016年2月 TensorFlow Serving 开源以来,我们做了一些重大改进。现在,让我们再回到这个项目开始的地方,回顾我们的进展过程,并分享我们下一步的方向。

在 TensorFlow Serving 启动之前,谷歌公司内的 TensorFlow 用户也必须从头开始创建自己的服务系统。虽然一开始服务看起来很容易,但一次性服务解决方案很快就会变得更复杂。机器学习(ML)服务系统需要支持模型版本控制(对于具有回滚选项的模型更新)和多个模型(通过A/B测试进行试验),同时确保并发模型在硬件加速器(GPU和TPU)上实现高吞吐量和低延迟。因此,我们开始创建一个独立、通用的 TensorFlow Serving 软件栈。

我们从一开始据决定将其开源,开发工作是从2015年9月开始。几个月后,我们创建了最初的端到端工作系统,并在2016年2月释出第一个开源版本。

在过去一年半的时间里,在我们的用户和公司内外的合作伙伴的帮助下,TensorFlow Serving 得以提供先进的性能、最佳的实践和标准:

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

我们的所有工作都通过与以下各方的密切合作实现的:(a)谷歌的 ML SRE 团队确保了我们团队的强壮并满足内部SLA; (b)谷歌其他机器学习基础架构团队,包括广告服务和TFX; (c)Google Play等应用程序的团队;(d)我们在加州大学伯克利分校RISE实验室的合作伙伴,他们研究与Clipper服务系统互补的问题; (e)我们的开源用户群和贡献者。

TensorFlow Serving 目前正在为1100多个我们自己的项目,包括谷歌云的ML预测,每秒处理数千万次的推理任务。核心服务代码可以通过开源版本获得:https://github.com/tensorflow/serving/releases

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

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

再次感谢我们所有的用户和合作伙伴,他们提供了反馈、代码和想法。参加项目:github.com/tensorflow/serving

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档