时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

谷歌发布 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:005596
用户头像

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

关注

评论

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

Dragonfly 中 P2P 传输协议优化

SOFAStack

开源

【C语言】for 关键字

謓泽

11月月更

追求极致性能!RocketMQ消息通信详解

Java全栈架构师

Java 程序员 面试 RocketMQ 消息中间件

Kubectl 命令总结

蜗牛也是牛

如何杜绝 spark history server ui 的未授权访问?

明哥的IT随笔

hadoop spark

面向对象基础

断墨寻径

面向对象 java;

极客时间架构训练营模块五作业

李晨

架构

从零到一构建完整知识体系!阿里巴巴Java并发编程技术内幕全网首次公开

Java全栈架构师

源码 程序员 程序人生 Java并发 java面试

旺链科技出席Hyperledger区块链技术峰会,分享数字乡村新业态

旺链科技

区块链 hyperledger 产业区块链 企业号十月PK榜

4.0体验站|我对OceanBase 4.0社区版的体验与看法

OceanBase 数据库

三面阿里java后台开发岗总结:进阿里必看这份究极面试文档

钟奕礼

Java 编程 java程序员 java面试 java架构

Alibaba最新推出的Spring Cloud手册惨遭开源

小小怪下士

Java 程序员 阿里 SpringCloud

手慢无!清华大牛熬夜整理Spring微服务架构设计第2版文档,限时删

钟奕礼

Java 编程 架构 计算机 java程序员

Linux内存泄露案例分析和内存管理分享

京东科技开发者

负载均衡 集群 内存泄漏 Linux Cron 运维、

java文件流

hello java

文件 程序 Java core 11月月更

互联网公司网络堡垒机首选哪家品牌?有什么优势?

行云管家

互联网 网络安全 信息安全 堡垒机

想要设计一个良好的接口至少要考虑这14点!

程序员小毕

Java 编程 程序员 程序人生 java面试

TiKV 源码阅读三部曲(三)写流程

PingCAP

源码阅读

双11狂欢背后,火山引擎数智平台为品牌做了这件事

字节跳动数据平台

大数据 营销数字化 火山引擎

让迁移不再开盲盒,让云也能省钱丨Hackathon 项目背后的故事第一期回顾

PingCAP

hackathon

欢迎来嫖!阿里P8高级技术专家携这份818页Java核心技术重磅来袭

钟奕礼

Java 编程 计算机 java程序员 java架构

2023年语言和框架我们值得关注什么?

阿里巴巴终端技术

框架 语言 & 开发

python小知识-python时间操作

AIWeker

Python python小知识 11月月更

这次,听人大教授讲讲分布式数据库的多级一致性|TDSQL关键技术突破

腾讯云数据库

腾讯云 tdsql 腾讯云数据库 多级一致性 中国人民大学

OpenHarmony开发之MQTT讲解

OpenHarmony开发者

OpenHarmony

LED透明屏焊接和插接安装以及三招提升稳定性

Dylan

LED LED显示屏 led显示屏厂家

太强了!终于有人整理出了仿京东电商项目,再次开源了

钟奕礼

Java 编程 架构 项目 java程序员

【#HDC2022】HarmonyOS体验官活动正式开启,赶快投稿赢限量奖品吧!

HarmonyOS开发者

HarmonyOS

视频服务HDR Vivid 还原色彩,让所见成“真”

HarmonyOS SDK

视频 HMS Core

高可用性集群软件就选Skybility HA!优势多多!

行云管家

高可用 双机热备

阿里云研发工程师刘睿:阿里云消息生态及最佳实践

云布道师

阿里云 云原生

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