最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 2016-02-19
  • 本文字数:1377 字

    阅读完需:约 5 分钟

机器学习现在变得越来越流行了,不仅被大力应用于像 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 读者交流群(#2))。

2016-02-19 18:005063
用户头像

发布了 43 篇内容, 共 27.7 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

视频直播+小程序,打破物理空间的电商卖货时代!

Speedoooo

小程序 小程序生态 直播带货 电商营销 小程序容器

【文本检测与识别-白皮书】第二章:文本检测与识别技术发展历程

合合技术团队

人工智能 文字识别 OCR

ShareSDK HarmonyOS集成指南

MobTech袤博科技

sdk HarmonyOS

如何解决 Angular custom library module 在 ng build 时无法被识别的错误

Jerry Wang

typescript 前端开发 angular web开发 9月月更

小程序化:系统集成行业降本增效的破局思考

Speedoooo

小程序 数字化转型 小程序容器 生态平台

极客时间—架构实战营—第九期—模块一作业

阿梁

开发者有话说|用成长治愈所有迷茫

法医

程序员 个人成长

利用Vim和Github Copilot打造一款强大IDE!

Jackpop

【数据结构与算法】8道链表面试真题超详剖析,带你领略算法思想【附思路、动图、源码】

Dream-Y.ocean

链表 数据结构与算法 9月月更

Java实现SM3加密和验证

共饮一杯无

Java 9月月更 SM3

被裁后半月面试8家公司无果,凭借这份Java面试指南成功入职阿里

Geek_0c76c3

Java spring 程序员 架构 面经

易周金融分析 | 银行融资青睐可转债;苏州市手机银行应用活跃人数规模发布

易观分析

金融 银行

Dubbo 泛化调用在vivo统一配置系统的应用

vivo互联网技术

dubbo 中间件 配置管理

新来个阿里 P7,仅花 2 小时,撸出一个多线程永动任务,看完直接跪了,真牛逼!

程序知音

作业

兜里贼缺钱

从零开始 - 50行代码实现一个Vuex状态管理器

茶无味的一天

JavaScript Vue vuex

docker与gosu

程序员欣宸

Docker 9月月更 gosu

关于加密数据的模糊查询

知识浅谈

9月月更 加密数据

现代化车企——零束科技DevOps研发数字化体系建设实践

嘉为蓝鲸

#DevOps #研发 #汽车 #科技

【编程实践】手把手带你利用Python简单实现斐波那契数列

迷彩

斐波那契 9月月更 数列

8万Star!这个开源项目有点强!

Jackpop

Javaweb之会话技术

楠羽

技术 笔记 9月月更

大数据ELK(五):Elasticsearch中的核心概念

Lansonli

ELK 9月月更

HowTo:Pipy 如何统计关键指标

Flomesh

Service Mesh 服务网格

保障系统安全

源字节1号

软件开发 信息安全 系统安全

如何实现数据库读一致性

京东科技开发者

数据库 读写锁 事务 MVCC 一致性

通过Thread Pool Executor类解析线程池执行任务的核心流程

华为云开发者联盟

后端 开发 企业号九月金秋榜

开源免费!又一款代码文档生成工具!

Jackpop

从零开始 - 40行代码实现一个简单Promise函数

茶无味的一天

JavaScript Promise

从 DFS 到回溯法,再看 N 皇后问题

掘金安东尼

前端 9月月更

苏州市大数据集团成立!博云成为首批数商代表

BoCloud博云

云计算 数字化 云平台

谷歌发布TensorFlow Serving开源项目:更快的将深度学习模型产品商业化_语言 & 开发_侠天_InfoQ精选文章