场景描述:GDD 进行到第二天,开发者们依然热情不减, TensorFlow RoadShow 依然是座无虚席。距离 2015 年 TensorFlow 面世,如今已过去四年,围绕 TensorFlow,谷歌打造了一整套生态系统,用户群体也越来越广大。那么这一次,谷歌的 TensorFlow 团队,又为我们带来了什么呢?
关键词:TensorFlow 机器学习 GDD
昨日,GDD 大会上,谷歌对最近的动态和新品,做了详尽的展示。在 GDD 的第二天,则是将重心倾注在了已发布四年的 TensorFlow。
今日凌晨,苹果召开了新品发布会,推出了三摄 iPhone 11 系列,此外iPad、 Apple Arcade、Apple TV+、iApple Watch Series 5 等新品也随之发布。
如果说苹果在用新品刺激着消费者群体,那么在大洋的另一边,谷歌开发者大会则还在低调而沉稳地进行,详细地介绍着自己在技术上最新进展,给开发人员带来最实际的帮助。
特设的 TensorFlow RoadShow,排满了整整一天的日程。那么今日的 GDD 上,TensorFlow 团队又带来了哪些看点呢?
TensorFlow:最受欢迎的机器学习框架
在 TensorFlow RoadShow 上,其亚太区产品经理梁信屏首先出场,展开了《机器学习的现在和未来》的分享,并陈述了 TensorFlow 的发展概况。
- 梁信屏为 TensorFlow 的发展做出了分析
当前机器学习发展的关键有三点:数据集、算力和模型。而 Tensorflow 则是机器学习潮流顺应下,最成功的一个机器学习平台。
从 2015 年发布以来,TensorFlow 一直在完善和更新,截至目前,有超过 4100 万的下载量,超过 5 万次提交量,9900 次代码改动请求,以及 1800 多位贡献者。
- TensorFlow 拥有着庞大的用户群体
因为它的强大功能,使用 TensorFlow 的实际案例也越来越多,多家企业和机构在用它进行研发。此外,TensorFlow 中文网站也已开通,中文社区和技术资源都在日渐扩增。
介绍完这些情况,随机开启了 TensorFlow 的全面展示,其团队的工程师们,对 TensorFlow 的进展做了详细介绍。
划重点:TensorFlow 2.0
备受瞩目的 2.0 版本终于在 2019 年面世。今年 6 月份, TensorFlow 2.0 Beta 版本发布,在今天的 GDD 上,工程师宣称 TensorFlow 2.0 RC 现已可用。
相比于 1.0 版本,新版围绕易用性、高性能、可扩展,三个方面进行了升级。
其中最吸引人的地方在于,使用 Keras 作为高阶 API ,优化默认 Eager Execution ,移除重复的功能,提供了统一 API 。
- 工程师介绍了 TensorFlow 2.0 围绕 Keras 做的改进
TensorFlow 2.0 使用 Keras 和 Eager Execution,能够轻松构建模型,在任意平台上实现生产环境的稳健模型部署。
介绍完 2.0 的具体情况后,谷歌工程师梁艳慧也详细介绍了从版本 1.0 升级到 2.0 的方法。
在谷歌内部,已经开始了内部的版本迁移,官方网站也提供了详细的代码迁移指南与工具。如果用户十分需要或者依赖于某个 1.0 版本的 API,可以根据指南轻松地将其迁移至 2.0 版本。
那么 TensorFlow 2.0 具体在哪些方面值得关注呢?谷歌的工程师们从以下几个角度做出了详细的介绍。
TF.Text:训练 NLP 模型
作为机器学习中一个重要的方向,自然语言处理有着很大的市场需求。TF 官方推出和升级了 TF.Text,为 TensorFlow 2.0 提供了强大的文本处理功能,且兼容动态图模式。
TF.Text 具有多项优点
TF.Text 是一个 TensorFlow 2.0 库,可以使用 PIP 命令轻松安装。能够在基于文本的模型中定期执行预处理过程,并提供 TensorFlow 核心组件中并未提供的、关于语言建模的更多功能和操作。
其中最常见的功能就是文本的词条化(Tokenization)。词条化是将字符串分解为 token 的过程。这些 token 可能是单词、数字和标点符号,或是几种元素的组合。
TF.Text 的 Tokenizer 一种用于识别文本的新型张量, Ragged Tensors。并提供了三个新的 Tokenizer。其中最基本的是空白 Tokenizer,可以在 ICU 定义的空白字符(例如空格,制表符,换行符)上拆分 UTF-8 字符串。
TF.Text 库还包括归一化、n-gram 和标记序列约束等功能。使用 TF.Text 有许多好处,例如用户不需要关注训练和预测的一致性,并且不需要自己管理预处理脚本。
TensorFlow Lite:在端上部署机器学习
两位谷歌资深软件工程师王铁震与刘仁杰,介绍了 TensorFlow Lite 的功能更新以及技术细节。
- TensorFlow Lite Roadmap 一览
TensorFlow Lite 是用于手机以及嵌入式设备上,部署机器学习应用的框架。之所以选择在端上部署,主要的考虑体现在以下三点:
第一:几乎没有延迟,可以提供稳定、及时的用户体验;
第二:不需要连接网络,可以在没有网络或者是网络很差的环境中使用;
第三:隐私保护,不会把数据传到云端,所有的处理能够在端上进行。
鉴于这些优势,目前基于 TensorFlow Lite 在端上部署机器学习的应用,已有有了很大的市场,而且在 2.0 中,部署模型的能力也得到了强化。
比如,闲鱼 APP 在租房场景,用 TensorFlow Lite 自动对图片打标签,提高了租房效率;科沃斯机器人将 TensorFlow Lite 部署在扫地机器人中,实现自动避障等等。TensorFlow Lite 在谷歌产品中也被广泛应用,如 Google 相册、输入法、云助理等。
根据统计,有超过 20 亿的移动设备,已经安装了基于 TensorFlow Lite 的应用。
不过,在端上部署机器学习仍然有着不少的挑战,比如相对云端来说,端上算力少、内存少,而且端上部署需要考虑耗电量的问题。TensorFlow Lite 也针对这些挑战做出了优化改善,以期将机器学习更容易地在端上进行部署。
TensorFlow Lite 最终实施端口,不仅能够部署在安卓和 iOS,还适用于在嵌入式系统(如树莓派)、硬件加速器(如 Edge TPU)、微控制器(MCU)中。
- TansorFlow 正在向微控制器迈进
目前它在图像分类、对象检测、姿态估计、语音识别、手势识别上已经得到了应用,而 BERT 、风格迁移、语音唤醒等功能也将后续发布。
如何在 TensorFlow Lite 中部署自己的模型?刘仁杰介绍道,这只需要按照三个步骤:
训练 TF 模型、转换到 TF Lite 格式、部署模型到端侧设备,根据 TF 2.0 的集成库,只需不多的代码调用就可实现。
TensorFlow.js:可制作微信小程序的平台
TensorFlow.js 是为 JavaScript 定制的深度学习平台。可以运行已有模型、对已有模型进行再训练、以及训练新的模型。
- 工程师介绍 TensorFlow.js 的直播画面
为了增加它的实用性,TensorFlow.js 支持多平台:浏览器、无线端(如微信小程序)、服务器、台式机。
除了可在多个平台运行机器学习模型,还可以对模型训练,此外具有 GPU 加速功能,并自动支持 WebGL。
在现场演示中,他们展示了一款基于 TensorFlow.js 的虚拟试装程序 Modiface 。通过这个框架,打造出了最小最快的虚拟试妆的小程序。据悉,后续还将实现发型转换、年龄转化模拟、肤质检测等功能。
- 用 TensorFlow.js 实现虚拟眼镜搭配小应用
此外,谷歌工程师介绍到,TensorFlow.js 适用的网站、无线端上,拥有大量的机器学习的应用场景,比如增强现实 AR、基于手势和肢体的交互、语音识别、无障碍网站、语义分析、智能会话、网页优化。
目前,TensorFlow.js 已经支持图像分类、物体识别、姿态识别、语音命令识别、文本分类等功能,比如推出的微信小程序插件,使用一个 API 就可以实现丰富的功能。
期待谷歌以及 TensorFlow 带来更多惊喜
除了上述提到的 TensorFlow 的一些功能,还对 Tf.distribute、TensorFlow 优化工具包、以及 TensorFlow 的一些企业应用案例做了介绍。
最后,梁信屏再次登台,分享了 TensorFlow 的社区情况。
- TensorFlow 的社区中有不少大神用户*
在 TensorFlow 的核心建设上,超过 2135 位贡献者。有 109 位机器学习领域的谷歌开发者专家;全球范围内多达 46 个 TensorFlow 用户群组。他还详细介绍了加入 TensorFlow 社区的途径。
随着 TensorFlow RoadShow 的结束,谷歌开发者大会也结束了所有日程,圆满落幕。对所有的技术开发人员来说,这场盛会所带来的干货,应该比观看苹果发布会要直观的多。
让我们期待 TensorFlow 的下一次突破,也希望谷歌能够在 AI 赛道上,更加给力。明年 GDD,我们再约!
—— 完 ——