2022 Google 开发者大会在9/14和9/15举办,地点在上海世博中心,由于大会第一天机器学习的主题比较少,就选择第二天来,专门狙击 TensorFlow&机器学习专场。
早上开场的是Android专场,门外汉表示听不太懂,不过不愧是google,会议厅我旁边几位疑似Android开发工程师,疯狂拍照,上面演讲嘉宾翻页有多快,他们拍的就有多快,不落下任何一页。
从11点开始就TensorFlow专场了,一共两场。
第一场是比较宏观的描述谷歌开源机器学习产品生态,是由魏巍老师主讲。
听了本场的内容,感觉的出谷歌在机器学习产品生态研发上,解构了整个机器学习流程,使其产品化,每一位开发者像搭积木一样的快速使用。
TensorFlow工程师主要从以下四个方面入手做改造:
整个积木化的过程以及愿景他们称之为“Tensor Projects”。
快速的过一下四个机器学习流程,数据获取/预处理、模型训练、模型部署、模型监控与维护目前都有哪些现成的工具/功能。
除了去kaggle找数据,这边还有TensorFlow Datasets,一些常见的机器学习数据集专门汇总成为一个单独的模块,想快速进行模型实验的时候,可以快速调用拿到,有点类似之前的iris安德森鸢尾花卉数据集。
链接地址:
https://www.TensorFlow.org/datasets/overview
https://github.com/TensorFlow/datasets
# !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
模型训练过程,google本身就有Keras/TensorFlow,比较常见、底层就不过多介绍了。
TensorFlow Lite是设备端的训练框架,这个在如今边缘设备百花齐放下,还是很有市场的。
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 在特定上下文中查找给定问题的答案。 |
大会还说会继续新增一些新模型进来:
JAX is NumPy on the CPU, GPU, and TPU, with great automatic differentiation for high-performance machine learning research.
JAX的使用门槛较高,笔者个人感觉JAX未来的应用场景会在:
目前TensorFlow工程师借助TensorFlow server已经可以非常好的部署在不同触点,网页、移动端、浏览器等
官方教程传送门
这款是笔者比较感兴趣的一款产品,因为在工业模型MLOps工程化的过程中必须会涉及到这块的内容。一些核心功能点也都是项目上必须的,如数据校验和验证、模型热启动、线上服务、模型发布等。
TFX 提供了几个 Python 软件包,它们是用于创建流水线组件的库。可以使用这些库创建流水线组件,以便代码侧重于流水线的独特环节。TFX 库包括:
设备端机器学习产品:MediaPipe其已经普遍在各个领域得到应用:
其中本场有总结传统搭建一个机器学习流水线,比较给力的一张图,确实每一个小黑字都可能面临无限bug…
涉及的技术点非常庞杂,现在这一系列流程可以全部被打包进了MediaPipe:
而且可以通过Model Maker进行模型迁移学习:
mediapipe tasks (预训练模型)+ model maker(迁移学习新模型)让设备端训练、部署变得非常轻松:
后面演讲介绍了如何从零开始重新训练 + 使用task library部署模型的一个专门案例:
step1 :准备图像识别的百来张图片 + 使用LabelImg标注数据集
step2:使用Google Colab训练模型
step3:部署模型
这里参观TensorFlow展厅看到有非常多有意思的实际应用,比如这款就是根据人体姿势点定位,让3D卡通人进行运动,而且不需要特别高性能电脑就可以跑起来,现场应该是一个比较老版本的MAC,也可以达到14FPS,一些面部识别的应用可以达到30FPS对电脑性能的要求可以说是非常低了。
下面这款也是摄像头拍到动作,然后识别为音乐指令,非常有意思。
重头戏是下面展区的MediaPipe的三类现场实时演示,包括了人脸实时检测、手势实时检测、3D卡通形象同步动作。
之前笔者自己玩摄像头实时人脸检测会使用opencv,且检测界面类似以下,比较简陋,看到上面现场效果,瞬间觉得opencv不香了…
后面简单问了一下在场的工程师大佬,这个现场演示是结合mediaPipe + codepen,看起来效果非常不错。MediaPipe不吃机器性能,加上规整的界面,一个小型的现场演示应该极快就可以构筑完。
于是我又查了codepen,发现mediapipe已经有6套模板,搓搓小手,可以玩起来了!