到此一游︱2022 Google 开发者大会
Posted 悟乙己
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了到此一游︱2022 Google 开发者大会相关的知识,希望对你有一定的参考价值。
1 现场展区体验
2022 Google 开发者大会在9/14和9/15举办,地点在上海世博中心,由于大会第一天机器学习的主题比较少,就选择第二天来,专门狙击 TensorFlow&机器学习专场。
早上开场的是android专场,门外汉表示听不太懂,不过不愧是google,会议厅我旁边几位疑似Android开发工程师,疯狂拍照,上面演讲嘉宾翻页有多快,他们拍的就有多快,不落下任何一页。
2 讲座第一场:谷歌开源机器学习产品生态
从11点开始就TensorFlow专场了,一共两场。
第一场是比较宏观的描述谷歌开源机器学习产品生态,是由魏巍老师主讲。
听了本场的内容,感觉的出谷歌在机器学习产品生态研发上,解构了整个机器学习流程,使其产品化,每一位开发者像搭积木一样的快速使用。
TensorFlow工程师主要从以下四个方面入手做改造:
- 数据获取/预处理
- 模型训练
- 模型部署
- 模型监控与维护
整个积木化的过程以及愿景他们称之为“Tensor Projects”。
快速的过一下四个机器学习流程,数据获取/预处理、模型训练、模型部署、模型监控与维护目前都有哪些现成的工具/功能。
2.1 数据获取/预处理:TensorFlow datasets
除了去kaggle找数据,这边还有TensorFlow Datasets,一些常见的机器学习数据集专门汇总成为一个单独的模块,想快速进行模型实验的时候,可以快速调用拿到,有点类似之前的iris安德森鸢尾花卉数据集。
链接地址:
https://www.TensorFlow.org/datasets/overview
https://github.com/TensorFlow/datasets
整个调用也非常简单,而且可以直接Load训练集。
# !pip install tensorflow-datasets
import tensorflow_datasets as tfds
import tensorflow as tf
# Construct a tf.data.Dataset
ds = tfds.load('mnist', split='train', as_supervised=True, shuffle_files=True)
# Build your input pipeline
ds = ds.shuffle(1000).batch(128).prefetch(10).take(5)
for image, label in ds:
pass
2.2 模型训练:Keras/TensorFlow/ TensorFlow Lite /JAX
模型训练过程,google本身就有Keras/TensorFlow,比较常见、底层就不过多介绍了。
TensorFlow Lite是设备端的训练框架,这个在如今边缘设备百花齐放下,还是很有市场的。
2.2.1 TensorFlow Lite Model Maker
The TensorFlow Lite Model Maker library simplifies the process of adapting and converting a TensorFlow neural-network model to particular input data when deploying this model for on-device ML applications.
TensorFlow Lite的迁移学习训练模块Model Maker:官网地址
TensorFlow Lite Model Maker 库简化了在设备端机器学习应用中部署 TensorFlow 模型时修改此模型并将其转换为特定输入数据的过程,其支持的迁移学习模型包括:
支持的任务 | 任务效用 |
---|---|
图像分类 指南 | 将图像分成预定义类别。 |
文字分类 指南 | 将文字分成预定义类别。 |
BERT 问答 指南 | 使用 BERT 在特定上下文中查找给定问题的答案。 |
大会还说会继续新增一些新模型进来:
2.2.2 JAX
JAX is NumPy on the CPU, GPU, and TPU, with great automatic differentiation for high-performance machine learning research.
JAX的使用门槛较高,笔者个人感觉JAX未来的应用场景会在:
- 提效超算,比如大会提到的DeepMind运算量爆表
- 嵌入某些边缘硬件设备,从纯性能优化上JAX有非常多的想象空间,可以嵌入一些边缘计算设备
2.3 模型部署
目前TensorFlow工程师借助TensorFlow server已经可以非常好的部署在不同触点,网页、移动端、浏览器等
2.4 模型监控与维护: TensorFlow Extended
这款是笔者比较感兴趣的一款产品,因为在工业模型MLOps工程化的过程中必须会涉及到这块的内容。一些核心功能点也都是项目上必须的,如数据校验和验证、模型热启动、线上服务、模型发布等。
TFX 提供了几个 Python 软件包,它们是用于创建流水线组件的库。可以使用这些库创建流水线组件,以便代码侧重于流水线的独特环节。TFX 库包括:
- TensorFlow Data Validation (TFDV),它是用于分析和验证机器学习数据的库。它具有很强的扩容能力,可与 TensorFlow 和 TFX 配合使用。
- TensorFlow Transform (TFT),它是一种使用 TensorFlow 预处理数据的库。
- TensorFlow Model Analysis (TFMA),一个用于评估 TensorFlow 模型的库。它与 TensorFlow 一起用来创建 EvalSavedModel,后者将成为其分析依据。
- TensorFlow Metadata (TFMD),可提供元数据的标准表示法,在使用 TensorFlow 训练机器学习模型时,这些表示法非常有用。
- ML Metadata (MLMD),它是一个库,用于记录和检索与机器学习开发者和数据科学家工作流相关的元数据。
3 讲座第二场:MediaPipe:搭建你自己的端侧开源机器学习解决方案
设备端机器学习产品:MediaPipe其已经普遍在各个领域得到应用:
其中本场有总结传统搭建一个机器学习流水线,比较给力的一张图,确实每一个小黑字都可能面临无限bug…
涉及的技术点非常庞杂,现在这一系列流程可以全部被打包进了MediaPipe:
而且可以通过Model Maker进行模型迁移学习:
mediapipe tasks (预训练模型)+ model maker(迁移学习新模型)让设备端训练、部署变得非常轻松:
后面演讲介绍了如何从零开始重新训练 + 使用task library部署模型的一个专门案例:
step1 :准备图像识别的百来张图片 + 使用LabelImg标注数据集
step2:使用Google Colab训练模型
step3:部署模型
4 TensorFlow&机器学习 - SandBox体验
这里参观TensorFlow展厅看到有非常多有意思的实际应用,比如这款就是根据人体姿势点定位,让3D卡通人进行运动,而且不需要特别高性能电脑就可以跑起来,现场应该是一个比较老版本的MAC,也可以达到14FPS,一些面部识别的应用可以达到30FPS对电脑性能的要求可以说是非常低了。
下面这款也是摄像头拍到动作,然后识别为音乐指令,非常有意思。
重头戏是下面展区的MediaPipe的三类现场实时演示,包括了人脸实时检测、手势实时检测、3D卡通形象同步动作。
之前笔者自己玩摄像头实时人脸检测会使用opencv,且检测界面类似以下,比较简陋,看到上面现场效果,瞬间觉得opencv不香了…
后面简单问了一下在场的工程师大佬,这个现场演示是结合mediaPipe + codepen,看起来效果非常不错。MediaPipe不吃机器性能,加上规整的界面,一个小型的现场演示应该极快就可以构筑完。
于是我又查了codepen,发现mediapipe已经有6套模板,搓搓小手,可以玩起来了!
以上是关于到此一游︱2022 Google 开发者大会的主要内容,如果未能解决你的问题,请参考以下文章