BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

谷歌发布TensorFlow Serving开源项目:更快的将深度学习模型产品商业化

| 作者 侠天 关注 5 他的粉丝 发布于 2016年2月20日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

机器学习现在变得越来越流行了,不仅被大力应用于像Google和Facebook这样的网络公司,也被普遍应用到大量的创业公司当中。

机器学习经过几十年软件工业的实践已达到产品级别,现已应用在Google各系列产品中,从Google app中的语音识别,Google Mail中的自动回复到Google Photo的搜索。但要把这些机器学习模型做成服务对外提供使用是一种新的挑战。

TensorFlow开源之后,今天Google又宣布发布面向生产环境的TensorFlow Serving,旨在解决上述挑战。Google软件工程师Noah Fiedel在博文中介绍,“TensorFlow Serving是一个高性能、开源的机器学习服务系统,为生产环境及优化TensorFlow而设计。它更适合运行多个大规模模型,并支持模型生命周期管理、多种算法实验及有效地利用GPU资源。TensorFlow Serving能够让训练好的模型更快、更易于投入生产环境使用。

这里有必要先科普下TensorFlow和TensorFlow Serving的区别:
TensorFlow项目主要是基于各种机器学习算法构建模型,并为某些特定类型的数据输入做适应学习,而TensorFlow Serving则专注于让这些模型能够加入到产品环境中。开发者使用TensorFlow构建模型,然后TensorFlow Serving基于客户端输入的数据使用前面TensorFlow训练好的模型进行预测。
个人认为TensorFlow Serving是将tensorflow训练出来的模型更好的应用于生产环境中,通过它的API等支持的方式来方便对外提供稳定可靠的服务。TensorFlow Serving的意义就在于能够很方便的将深度学习生产化,解决了模型无法提供服务的弊端,并且用的是c++语言,性能上应该不错。这样以后深度学习方向的创业公司都能很方便的将产品商业化,保证7*24小时的可靠服务。

如谷哥所说,TensorFlow Serving可以在不改变现有模型架构和API的基础上发布新的模型和实验数据到产品中。它不仅仅支持TensorFlow训练的模型,也可以扩展到其他类型的模型(比如Scikit Learn生成的模型)。
下面讲下TensorFlow Serving使用的具体例子:
给个简单的监督学习的训练pipeline,如图1

图1
在图1中,输入训练数据(Data)到学习者(Learner)中,输出训练成功的模型(Model 1)。

一旦新版本的模型训练好就可以发布到服务系统(TensorFlow Serving)上,如图2

图2
在图2中,TensorFlow Serving利用上面训练好的模型基于客户端(Clients)提供的数据进行预测结果。这里客户端和服务端之间的通信采用的是RPC协议(Google开源的一个高性能RPC的实现,gRPC源代码见http://www.grpc.io)。

对于生产环境来说,启动模型,随着时间不断迭代模型,新的训练数据出现需要训练优化模型,这些都是常态。现在有了TensorFlow Serving就可以在不停止服务的情况下更新模型和数据,Google内部许多pipelines一直在运行。

TensorFlow Serving采用C++编写,支持Linux。为性能做有优化,在16核至强CPU设备上,每核每秒能够处理超过10万个请求,这里包括gRPC和TensorFlow接口之间的处理时间。TensorFlow Serving代码和教程已经能够在GitHub获取。


感谢杜小芳对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT