TensorFlow 2.0 发布以来,又有哪些最新进展?| AI ProCon 2020

百家 作者:CSDN 2020-07-24 16:21:16

【导读】7 月 3-4 日,由 CSDN 主办的第三届 AI 开发者大会(AI ProCon 2020)在线上举行。本次大会有超万人报名参与,参与人群覆盖 50+ 领域、4000 家企业。其中有来自行业内 70+ 顶尖企业、开源社区与科研高校的近 100 位行业领袖、技术大咖与研究学者。


他们用更新鲜、更有趣、更年轻的方式,聚焦智能时代 AI 技术的发展曲线以及 AI 与社会各行业结合的最新应用进展,深入解析热门 AI 技术在行业中的实践与落地经验,揭示技术与行业发展面临的机遇与挑战。

在 7 月 3 日的主论坛上,TensorFlow中国研发团队负责人李双峰带来了《TensorFlow的最新进展》的主题演讲。

?

核心观点:


  • TensorFlow 生态系统有着丰富的工具链,推动前沿研究,支撑大规模应用,可多平台灵活部署。

  • TensorFlow 2 让机器学习更简单:使用 tf.keras 高阶API,动态图 Eager Execution 易调试和静态图高效结合,distribute strategy 可扩展性好,tf.data 加速数据处理,简单、灵活和高性能。支持云端、嵌入式和浏览器端多平台部署。

  • TensorFlow Lite 让机器学习无处不在:支持移动和嵌入式设备,跨平台部署兼容性好,高性能,支持多种硬件加速,提供量化等模型压缩工具。有丰富的SOTA模型和完整案例、Model Maker、代码生成工具和Android Studio集成,方便初学者。

  • TensorFlow 提供了丰富的工具,帮助构建 Responsible AI。

?

以下内容为演讲实录,由 CSDN(ID:CSDNnews)整理:

?

李双峰:大家好!我是来自 Google 的李双峰,负责TensorFlow 中国研发团队,今天我演讲的题目是《TensorFlow的最新进展》。

TensorFlow 开源生态系统提供了丰富的工具链,满足前沿研究—生产环境使用—全场景部署等多样化等需求,帮助构建负责任的 AI 应用,同时受益于庞大社区的贡献。目前,TensorFlow 下载量已经超过1亿次,提交次数89,000+,代码改动请求14,600+,贡献者超过2600位。

?

TensorFlow推动了很多前沿研究,比如16-17年 Google 提出了 Transformer 模型,是最近几年深度学习最有影响力的成果之一;2018年提出了 BERT 模型,带来了 NLP 领域的突破,并很快在工业界得到广泛使用,比如提升搜索质量。

?

TensorFlow 支撑了社区中很多应用,包括环境保护、农业检测、文化艺术研究和医疗健康。在科学计算领域,Summit 是全球领先的超算系统,它利用 TensorFlow 来做极端天气的预测。在工业界,网易严选用 TensorFlow 做销售数据预测,腾讯医疗用 TensorFlow 做医疗影像处理,英语流利说用TensorFlow 帮助用户学习英语。大家常见的推荐和搜索系统,背后很多都用到了 TensorFlow。

?

TensorFlow 2 让机器学习更简单


TensorFlow 2 侧重于易用性,同时仍然保持灵活高效。

?

TensorFlow 2 的整体架构分为「训练」和「部署」两个部分,训练部分包括了数据设计、模型设计、训练及分析等功能:训练时可以用 Keras 这样的高阶 API 来构建模型,也可以用 tf.data 来做高性能数据处理,在不同硬件做大规模训练时需要用到Distribution Strategy。训练之后产生的模型以SavedModel 格式存起来,它可以在不同平台部署,也可以发布到 TensorFlow Hub 上,便于共享。部署部分,包括用于浏览器和 Node.js 上部署的 TensorFlow.js,在移动和嵌入式平台部署的 TensorFlow Lite,和服务器端部署的TensorFlow Serving。

?

1. 易用性:为了提升易用性,TensorFlow 2 采用了 tf.keras 高阶 API,只需要数行代码就可以构建一个复杂的网络。默认是动态图 Eager Execution,使用命令式的编程方式,能够和周围的 python 代码融合的更好,便于调试。同时可以使用 tf.function 把动态图转换成静态图,还可以开启XLA编译优化,提升性能。API更加简单,文档更清晰,比如在1.0的时候,LSTM可能会有不同的写法,2.0之后写法将变得一致。

?

2. 灵活性:TensorFlow 2 满足从简单建模到复杂模型高度灵活的需求。新用户和简单案例,可用 Keras 内置模块和 Keras Sequential API;进一步可以用 Keras Functional API,还可以定制 Keras 模块;追求极大灵活度,可以使用Subclass 来完全定制自己的各种模块和训练循环。比如:

  • 构造一个看图回答问题的网络,需要一个 CNN 网络处理图像输入、Embedding + LSTM 处理问题文本输入,再加上全联接网络进行分类,每个部分都只需要数行代码就可以实现。

  • 处理 NLP 问题,有 TF.dataset 提供数据集,有 Keras preprocessing、TF.text 和 TF.addons 等提供多种预处理工具,KerasTuner 来进行超参数调整,工业级应用时有 Keras 实现的 BERT 作为参考,以及 TF Hub 上有很多预先训练好的模块。

?

3. 可扩展性和高性能:使用distribute.Strategy,一行代码就可以从单机多CPU(使用MirroredStrategy)扩展到多机多CPU(使用MultiWorkerMirroredStrategy)。比如最近TF 2.2,通过多种优化(NCCL优化,FP16梯度计算,梯度计算和反向传播并行化),在进行BERT SQuAD训练时,吞吐量相对于TF 2.0有2.5倍的提升。TF 2.2 中还在 TensorBoard 中提供了 TF Profiler 工具集,可以统计和追踪性能的瓶颈。数据处理是深度学习训练的瓶颈之一,tf.data 可以加速数据处理,在即将发布的 TF 2.3 中,增加了两个功能:tf.data snapshot 可以复用已经计算过的数据,而 tf.data service 可以扩展多个 worker 加速数据预处理并容错。

?

4. 丰富的多平台部署能力。


支持灵活的多平台部署,包括服务器、移动和嵌入式设备,和浏览器端。

?

TensorFlow Extended (TFX),是一个端到端的机器学习平台,它可以创建和管理大规模生产环境中的复杂机器学习工作流,在 Google 被大规模使用。TFX 提供了丰富的组件,比如对数据流做统计验证并查看异常,数据清理和转换,持续训练模型,并将对模型进行评估和验证,最后将合格的模型部署到生产环境中。

?

在服务器端部署中,TensorFlow Serving 是一个高性能的TensorFlow ?模型部署系统,允许多版本模型同时部署,实时上线,并支持 RPC 和 RESTful API。

?

Tensorflow.js 是为 Javascript 而定制的机器学习平台,可以利用现有的 JS 模型包,对现有模型做迁移学习,或者用 JS从头训练模型。我们已经提供了多种多样的模型,最近发布了手势识别模型和基于 MobileBERT 的问题回答模型。它可以支持各种浏览器,也支持各种框架比如 React Native,还可以在服务器端使用 Node.js。特别值得一提的是,TF.js 提供了微信小程序插件,可以直接在小程序里运行TF.js程序,比 ModiFace 虚拟试妆小程序使用了 TF.js,总共大小是1.8M(980KB JS + 830KB model),速度达到25FPS。

?

TensorFlow Lite 可以部署在移动和嵌入式设备端,甚至MCU上。

?

TensorFlow Lite 让机器学习无处不在

?

TensorFlow Lite(TFLite)是一个轻量、快速、跨平台的专门针对移动和 IoT 应用场景而优化的框架,它支持安卓、iOS、嵌入式设备(如树莓派)、硬件加速器(比如EdgeTPU)甚至非常小的MCU平台等。人们用 TensorFlow Lite 做包括语音、视频、图像、自然语言处理等多种功能。全球有超过40亿设备部署了TensorFlow Lite,比如Google的许多应用像Google Assistant,国外应用像Uber、Airbnb,国内应用像网易、爱奇艺、WPS、腾讯的全民K歌等。

?

性能是我们持续不断提升的一个领域,TensorFlow Lite 性能强大,同时支持多种硬件加速器,比如 GPU、NNAPI、DSP和CoreML。以 MobileNetV1 为例子,Pixel4上单线程CPU上浮点模型只需要37ms,量化提升2.8倍达到13ms,在GPU上使用OpenCL则只要6ms。GPU上最近增加了对 OpenCL 的支持,在多个视觉模型上的测试表明,基于 OpenCL 的 GPU 性能提升为 CPU 上的 4-6 倍, 是OpenGL 的 2 倍。另一个即将到来的新突破,是全新的高度优化后的浮点卷积核库 XNNPACK。在多个关键浮点卷积模型上的测试表明,在多种硬件平台上,使用 XNNPACK 后,单线程 CPU 性能提升达20%~200% 。比如在 X86 Windows 平台上,有两倍的提升。

?

我们也提供 TensorFlow Lite for Micro 功能,支持在 MCU 上运行超级小的模型:语音识别的模型只要20KB,人物探测250KB,手机姿态检测也只需要20KB,这样的模型可以真正让机器学习无处不在 。

?

TensorFlow模型优化工具,支持量化、剪枝等多种模型压缩技巧,使用简单,进一步压缩了模型。

?

TensorFlow Lite 初学者,从哪开始?

?

1. 预训练前沿模型和完整参考示例


Tensorflow Lite 官网提供了丰富等预训练模型库和完整应用代码(包括模型前处理和后处理),包括多种案例,比如对象追踪、风格迁移和问题回答,也包括不同平台的例子(比如 Android、iOS、树莓派及 MCU)。比如,在手机上实现问题问答是一个很有挑战的问题,我们发布了基于 MobileBERT 的参考应用。另外,社区 github 项目 “Awesome TFLite”,也收集了很多有意思的示例。


我们推出了一些前沿的预训练模型,比如:


  • EfficientNet-Lite 是新颖的图像分类模型,可通过减少计算和参数的数量级来实现 SOTA 的准确性。它针对 TFLite 量化方式进行了优化,在损失较低精度 (几乎可忽略) 的同时大大提升了推理速度,并可以运行在 CPU、GPU上,在相似的高精度下,EfficientNet-lite4比 Inception v4 有显著的速度提升。

  • MobileBERT 和 ALBERT-Lite 是流行的 BERT 模型的优化版本,该模型在一系列 NLP 任务(包括问答、自然语言推断等)上均达到了 SOTA 的准确度。其中,MobileBERT 的体积是 BERT 的1/4,速度是 BERT 的4倍,同时保持了相近的准确度。我们还开发了量化版本的 MobileBERT,它是 BERT 的1/16,速度是 BERT 的8倍,目前 MLPerf 社区正尝试基于此进行移动硬件加速的 NLP 基准测试。


2. TFLite Model Maker

?

初学者如果希望定制自己模型,但是不懂机器学习、也不懂构建模型?没关系,用 TFLite Model Maker,它提供了一个Python的库,你不需懂ML,只需要4、5行Python代码,就可以根据你的数据来定制一个模型。

?

3. TFLite 代码生成和 Android Studio ML model Binding 工具

?

TFLite Model Maker 生成的模型会自动加上 TFLite Metadata,我们提供了一个代码生成工具 TFLite codegen,把带有TFLite Metadata 的模型直接转换成安卓代码,让安卓的开发者不怎么需要太懂这个模型,就能够像用API一样去写代码。?生成的代码还可以做一些前处理和后处理工作。

?

更进一步,我们也将此功能集成到 Android Studio 的ML model binding工具中,只需要把模型导入到Android Studio中就可以生成代码,目前已在Android Studio 4.1中提供试用版。

?

TensorFlow?提供了丰富的工具链

?

如果不希望从头训练这个模型,希望利用迁移学习,则可以使用 TensorFlow Hub,它是开箱即用的预训练模型库,提供了多种模型(比如图像 、文本、视频、音频等),也支持多种部署的格式(如TF、TFLite、 TF.js)。其中有不少社区贡献的模型,比如NVIDIA。

?

如果你只是关注前沿研究,不关注部署的问题,可以去尝试一个非常新的高性能、轻量级框架JAX,它是为了研究者构建的。JAX 结合了自动微分和 XLA 的功能,使用纯粹的 Python作为 API,非常易用而轻量级,同时可以利用 XLA 编译到GPU 或者 TPU 上,从而保持高性能。

?

我们也开源了新的编译器框架 MLIR 来加速机器学习。MLIR提供了最新的ML编译器技术,支持多层次IR,模块化,可定制。它由 LLVM 项目管理,立场中立,最大的一些硬件厂商都表示支持,一起推动 MLIR 的发展。MLIR 正在帮助构建更好的 TensorFlow,通过编译加速,简化硬件支持,也用在了TensorFlow 到 TFLite 的转化。

?

TensorFlow 生态系统提供了非常丰富的扩展库,这些库针对当前机器学习领域的最前沿研究提供了很多工具,已经有超过80个不同的 Tensorflow 库供研究人员使用。比如对贝叶斯模型感兴趣,可以使用 TF probablility 库;如果想要 NLP 模型处理,提供了 TF Text 库;对于深度学习和 Graph 结合,可以研究 TF Neural Structured Learning;想探索强化学习,利用 TF Agents。最新发布的一个库 TensorFlow Quantum,把 TensorFlow 和量子计算结合起来。

?

TensorFlow?推动负责任的AI (Responsible API)

?

TensorFlow 开源了很多工具来推动负责任的AI(ai.google/responsibilities/responsible-ai-practices),这些工具关注如下几个方面:


  1. 提供最佳实践:比如 People+AI Guidebook 是一个指南,帮助大家去构建以人为本的AI。

  2. 公正性:比如 TensorFlow Fairness Indicators 可用于模型公正性评估和可视化。

  3. 可解释性:比如 TensorFlow Model Analysis 帮助分析模型。

  4. 模型隐私:比如 TF Privacy 帮助训练更具隐私性的模型,而 TF Federated 利用联邦学习来增强数据隐私。

  5. 关注模型安全:持续推进和支持社区进行相关基础研究,开源工具。

?

TensorFlow的学习资源和社区

?

学习资源


  1. 官方网站 tensorflow.google.cn:有非常丰富的TensorFlow 2 教程和最佳实践。

  2. TensorFlow 微信公众号:包含 TensorFlow 最新进展和技巧,大量社区和公司分享的工业界案例和经验,还有很多前沿研究翻译成中文,是非常好的学习资源。

  3. TensorFlow 教程:Coursera 和 Udacity 上有多门很好的 TensorFlow 实战的课程,很多都是免费的。Google也提供了《Machine Learning Crash Course》 TF 2.x版,便于没有 ML 基础的快速入门。

  4. 中文社区教程:比如 tf.wiki 上的《简单粗暴 TensorFlow 2》,d2l.ai?上的《动手学深度学习》(TensorFlow 2版),黑胡桃实验室的《TensorFlow Crash Course》 , 腾讯课堂上的《TensorFlow.js遇到小程序》等。

?

实战


  1. Kaggle竞赛: Kaggle构建了好 TensorFlow 2 运行环境,参与者可以使

  2. 考证:TensorFlow ?Developer Certificate是全球统一认证的证书。

  3. TensorFlow Model Garden:特别欢迎大家为TF Model Garden 贡献 TensorFlow 2模型,有机会成为TensorFlow 官方推荐的代码,也有可能获得 Google Open Source Peer Bonus。可以在 github.com/tensorflow/models 找到相关任务。

?

社区


  1. 文档翻译、创建中文教程和视频:目前 TensorFlow 官网中文文档很大部分都是社区贡献和维护的,只要有热情,每个人都可以参与。

  2. 分享案例:欢迎给TensorFlow微信公众号投稿,分享案例和经验,也可以在 CSDN 等社区分享经验。

  3. 参与社区 TFUG(TensorFlow User Group):可以参与 TFUG 活动,也可以申请成为所在城市的组织者,甚至申请新的 TFUG。目前大陆地区已有19个城市有 TFUG。

  4. 贡献代码和模型:TensorFlow 有多个 SIG 小组,也有不少中文社区的开发者领导这些SIG小组,比如SIG Networking, SIG IO,SIG AddOns,欢迎大家参与TF SIG 小组,贡献代码,也可以贡献模型。

  5. 成为社区专家 GDE(Google Developer Expert):目前大陆地区已有不少 ML GDE。

?

最后,如果大家希望了解更多,可以在微信搜索关注”TensorFlow” 官方公众号,和访问官方网站:tensorFlow.google.cn。

?

谢谢大家!


更多精彩推荐
?中国首个火星探测器天问一号发射成功!
?推特惊爆史诗级漏洞,App 恶意窃取用户隐私,云端安全路向何方?
?谷歌教父传奇:跳级读博士、大学共同创立 Google ,规定工程师 25% 时间思考创意
?万亿美元软件浪潮来临,开发者是核心!
?用 Python 可以实现侧脸转正脸?我也要试一下!
?员工导致Twitter陷入史诗级加密黑客风暴?官方回应来了
点分享
点点赞
点在看

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接