今天,我们来聊一聊端智能(On-Device AI)

Backgroud 时代背景

1. On-Device 终端互联时代

通信技术 1G(1986) 2G(1995) 3G(2000) 4G(2014) 5G(2020) 6G(?) ...
时代 模拟语音时代 数字语音时代 移动通信时代 移动互联网 万物互联时代 卫星互联网 ...
传输速率 2.4kbps 10~64kbps 300kbps~2mbps 100mbps~1Gbps ~10Gbps ~1Tbps ...
代表产品 摩托罗拉(大哥大) 诺基亚 iPhone 1~5 iPhone 5s+ iPhone 12+ / 各种 IoT 产品 VR/AR? ...
信息承载方式 通话 文本 图片 视频 直播 元宇宙? ...

我们目前处于 5G~6G 的时代,超大规模终端都需要联网,终端(Device)数量爆发增长。

2. AI 人工智能时代

当下,我们正处于人工智能第三次浪潮中。全面拥抱人工智能,为产业赋能。

参考:《人工智能史》

为什么第三次人工智能浪潮能爆火🔥?

人工智能时代的发展,离不开 "大数据"、"理论"、"算力" 三个条件。

Data 大数据

首先是数据 。一方面,大数据基础 设施逐步健全,数据中心遍地开花;另一方面,互联网,尤其是移动互联网的兴起,带来了源源不断的数据。全球每年新增数据量已经迅速到达了ZB级别。

根据IDC 2018年发布的Data Age 2025报告,到2025年时,全球每年新增数据将会到达175ZB之多。

Research 理论基础

第二是理论基础 。根据斯坦福 2021 的 AI Index 统计,2015 年至 2020年,archive 上,AI相关出版文献的数量逐年递增,到2020年时每年AI相关出版文献的数量已经突破了3万

Power 算力

第三是计算机的算力。左图是 OpenAI 分析的 人工智能训练对算力的需求。它将需求分成了两个纪元,

在2012年之前,训练对算力的需求大约每两年翻一倍,摩尔定律完全能满足这个要求;

但是到了2012年之后,训练对算力的需求大约每三四个月就会翻一倍 。这时,支撑起训练算能需求的,是华裔企业家黄仁勋。在Nvidia,性能翻倍的速度提高到了每12个月。

Cloud AI 云端智能

云端智当前的问题:

  1. 数据问题:

    • 隐私安全问题:用户隐私泄露 -> 法律合规问题
    • 数据孤岛,各厂都维护自己的数据,难共享难合作-> 数据壁垒问题
  2. 成本问题:

    • 原始数据传输 -> 带宽成本高。
    • 基于原始数据,进行特征抽取,再训练 -> 流程长,训练成本高。
    • 必须走云端做推理 -> 推理成本高。
  3. 体验问题:

    • 云端模型更新周期长,不能短期很快理解用户诉求。 -> 体验不及时

    • 单体理解弱:模型容易被高活用户影响,不能更好的理解中长尾用户在设备上的行为特征。

那么有没有什么办法,能解决用户隐私安全问题和数据孤岛问题呢?

答:有的,联邦学习。

Federated Learning 联邦学习

联邦学习最早在 2016 年由谷歌提出,原本用于解决安卓手机终端用户在本地更新模型的问题。

联邦学习给隐私安全问题提供了理论基础。

参考:

  • 本质:联邦学习本质上是一种分布式机器学习方法。要求在不交换明文数据的前提下,进行联合建模。

  • 目标:联邦学习的目标是在保证数据隐私安全及合法合规的基础上,实现共同建模,提升AI模型的效果。

联邦学习的主要思想:

  1. 元数据不出域,特征出域。各端共享特征,尽可能保护"用户隐私"与"企业的核心数据"。
  2. 打破数据孤岛问题,各方共享特征,共同建模,提升模型效果。

Horizontal FL 横向联邦学习

在数据集共享相同特征(Feature)但样本(Sample)不同的情况下,引入了横向联邦学习基于样本的联邦学习

划重点:相同特征,不同样本。合并样本,基于样本集合进行联邦学习。

下面矩阵的每一行代表一个样本,每一列代表一个特征。

Case:Google 输入法(论文

Google 最早在 2017 年提出了联邦学习的概念,为了解决拼音输入法的预测问题。

例如:用户输入了 "I love you",输入法会建议"so much"、"too"。

实际原理:Google 输入法在各个手机终端上计算了梯度(特征),然后将这个梯度发送到 Google 的云端服务器上。

Google 再将最终整合的梯度回传到各个手机终端(分布式机器学习的思想),终端再更新本地模型进行调优。

这种方式在不需要传输用户隐私数据的前提下,通过上报梯度(特征),让模型很好的学习到了用户的行为。

经过多轮迭代,Google 输入法达到了非常好的效果。

Vertical FL 纵向联邦学习

在数据集共享相同样本(Sample)但特征(Feature)不同的情况下,引入了纵向联邦学习基于特征的联邦学习

划重点:相同样本(用户),不同特征。合并特征,基于特征集合进行联邦学习。

Case:微众银行反洗钱建模

Federated Transfer Learning 联邦迁移学习(FTL)

寻找特征/样本中的相似点,再建模。(理论能行,但个人感觉也比较难,也没找到业界比较好的例子)


OK,上面交代了当前的时代背景和理论基础。

如何具体将上述技术应用到设备上呢?

那么,下面 我们来聊一聊端智能(On-device AI)。

On-Device AI 端智能

得益于联邦学习的提出。给 End-to-End AI 链路提供了理论基础。

数据传输链路

端云通信(旧)

端云通信(新)

将"埋点上报"转换成"特征上报"。好处如下:

  1. 响应快:直接在端上完成推理和判断,避免走云端网络。
  2. 隐私安全:元数据不出域,保护用户隐私,保障安全合规。
  3. 降低成本:降低带宽成本,降低云端推理成本。
  4. 个性化:端上也可以进行模型调优,达到千人千模的效果。

背后的原因和支撑

Data 数据

移动终端爆发式增长

得益于移动互联网时代的发展,手机产生的数据对比桌面端呈现出爆发式增长的趋势。

端设备传感器越来越丰富

手机:

汽车:

Research 理论基础

模型的趋势,一方面是越来越大,另一方面是越来越小。

  • 越来越大:参数越来越多,理解能力越来越强。

  • 越来越小:小而精的模型,适合植入端上来运行推理。

Power 算力

得益于设备的算力越来越好,越来越的设备开始内置 NPU。

参考:[知乎]《通俗易懂告诉你CPU/GPU/TPU/NPU...都是什么意思?》

云端智能(Cloud AI) vs 终端智能(On-Device AI)

从终端智能的实现基础中也能看出,它受到诸多来自硬件的制约。终端无法扩容,这是它与云端最显著的差异之一。下面给出一些比较参考,以量化对制约的认知:

云端 终端 参考/备注
数据延迟 分钟级,日志上报延迟 + 近线处理延迟 毫秒级,日志埋点后可用
存储周期 TB/PB 级,关键数据终身存储 MB 级,缓存不宜过大,条数影响查询延迟 抖音缓存 ~2GB
模型规模 GB/TB 级,流式更新或 T+1 更新 MB 级,终端训练或重新下载,大小影响到达率 抖音视频 ~10MB
计算规模 只要机器扛得住 秒级,计算不宜过长,需避免影响用户体验

Pitaya 字节端智能平台

好处:

  • 更多的用户信息,不上报隐私,让模型更好做推理。

  • 更好的实时性,策略调整更及时。

工作流(端云协同)

常用推理引擎(算法)

Decision Trees 决策树

优势:

  1. 结构简单,方便处理"数值"和"类别"上的特征。
  2. 可解释,可回溯。

劣势:

  1. 不稳定,因为是不断分裂产生的树。如果上层节点的数据里有噪音,对下层结构影响比较大。

  2. 数据复杂时,容易产生复杂的树。造成过拟合(模型在训练数据上表现得过于优秀,以至于无法很好地泛化到未见过的测试数据或新的场景)。

*Random Forest 随机森林

由众多决策树组成的一种集成学习方法,输出是对问题最佳答案的共识。随机森林可用于分类或回归。

森林很好理解,就是多棵决策树。

生成方法:

那么,"随机" 又是怎么随机的?

  1. "训练集"随机(类比到 MySQL,就是随机抽行,可重复,每棵树可能抽到同样的行)
  2. "特征"随机(类比到 MySQL,就是随机抽列,不可重复,每棵树不能一次抽同个特征列)

就是在抽取训练集/特征 的时候,随机的抽,让每棵树拿到的训练集&特征集合尽可能都不一样。

导致,每个树的预测结果也会产生差异。

决策方法:

  • 分类场景,随机抽整列特征,训练出多个决策树,进行投票。

  • 回归场景,对每个树的结果求和,取平均数。

决策树适用场景:
  • 业务特征:小数据量、少特征,硬件要求不高。
  • 用户定制模型:决策树组合模型支持增量训练,且训练要求相对较低,适合在客户端上根据「通用模型」增量训练出「用户定制模型」。
  • 虽然往往不是最优解,但是能快速达到上线水平。

注:增量训练需要合理的采样逻辑,否则很有可能将模型训"偏"

当然,除了随机森林,还有其他决策树的优化变种(GBDT、XGBoost、LightGBM...),这里就不一一展开了,感兴趣可以再研究。

Neural Networks 神经网络

神经网络是一种模拟人类大脑运作机理的算法。

  • 人脑运作机理:通过"视觉、听觉、嗅觉、味觉、触觉",触发大脑中不同的神经元组合,进行处理和计算,生成最终指令。

人工神经网络也是类似,分为输入层(Input layer)、隐藏层(Hidden layer)、输出层(Output layer)。

由上图可知:

  • 输入层神经元是隐藏层神经元的输入,隐藏层神经元的输出是输出层神经元的输入。
  • 两个神经元之间的连接会有一个权量w。
  • 第 t 层的每个神经元与第 t-1 层的每个神经元相互关联。当然,也可以设置权量w为 0,从而在实质上取消连接。

在加工输入数据时,将输入数据赋予输入层的每个单元,而隐藏层的每个单元是输入层每个单元的加权求和

也就是说,输入层的数据会被前向传播到隐藏层的每个单元。

同理,隐藏层的输出作为输入会前向传播到输出层,计算得到最后的输出,即神经网络的输出。

神经网络适用场景
  • 业务特征:大数据量,复杂的特征规模。

  • 场景:有一定硬件条件,且对效果有比较高的预期。

决策树(DT) vs 神经网络(NN)

决策树 DT 神经网络 NN
数据量 小数据集上决策树模型有明显的优势 往往需要较大的数据量(千万级以上)
调参难度 难度低,周期短,效果中 难度高,周期长,效果较好
模型解释度
硬件要求 要求相对低 一般需要 GPU 等硬件加速

Show Case 端智能实践

视频预加载

  1. 原始策略:缓存固定大小的视频。

  1. 端智能优化思路:

  1. 端智能工作流:

实时特征(因):

  1. 最近的滑动手速(快 or 慢?)=> 最近播放同类型视频的观看时长?(长 or 短?)
  2. 最近的交互频率(多 or 少?)=> 同类型视频的点赞、收藏、评论
  3. 当前的行为状态(步行/坐着/躺着?)
  4. ......

推理结果(果):

  1. 判断:碎片化(短视频+更多缓存数量)or 业务闲暇(中长视频+更长缓存时间)

=> 使用不同的缓存策略

动态超分

超分辨率就是终端智能在视频图像领域经典应用之一。

如上图示,超分辨率是将低分辨率的图片或者视频帧,还原成高分辨率的技术。

自 2014 年 SRCNN 提出后,基于神经网络的超分方案广泛应用于日常生活的各种视频图像场景中,比如视频流媒体、直播、XR、无人机视频流、医疗成像,甚至卫星视频传输。

由于视频超分对实时性要求极高,细微的延迟都会极大影响用户视频体验。因此,通常会在终端上直接部署模型,实时提升图像和视频帧的分辨率,让用户享受到高清画质。

  • 优势:省带宽,低延迟。
  • 劣势:对硬件有一定要求。

信息流本地重排

端:意图识别模型,高优曝光最近感兴趣的内容(商品)

自动驾驶

自动驾驶其实也是端智能的一个典型实践。

目前主流的智驾方案有:

  1. 激光雷达方案:

    1. 硬件成本高,且依赖高精地图。但对算法要求低,无需太多训练数据。
    2. 产品代表:华为 ADS (早期)。
  2. 纯视觉方案:

    1. 摄像头 + BEV(bird's-eye-view)算法 + Transformer
    2. 硬件成本低。但强依赖视觉算法+大规模训练数据。
    3. 产品代表:特斯拉 FSD(Full-Self-Driving)Xiaomi Pilot Pro、华为 ADS(新版)。
  3. 视觉+激光雷达:

    1. 产品代表:比亚迪天神之眼、Xiaomi Pilot Max

不论是"激光雷达方案"还是"纯视觉方案",都需要在汽车端内完成运算和推理判断。

Result 收益与效果

  • 成本:带宽下降、服务器压力下降等等。
  • 效果:CTR、GMV、UV、PV 提升等等。

参考与致谢:

  1. [知乎]详解联邦学习
  2. [知乎]综述:《联邦学习:概念与应用》
  3. 美团外卖端智能应用
  4. 淘系技术 | 端智能技术体系概览
  5. [36Kr]BEV为什么真香,会如何改变智驾行业?
相关推荐
IT猿手1 分钟前
最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解TP1-TP10及工程应用---盘式制动器设计,提供完整MATLAB代码
开发语言·深度学习·算法·机器学习·matlab·多目标算法
咸鱼桨18 分钟前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派
强哥之神30 分钟前
Nexa AI发布OmniAudio-2.6B:一款快速的音频语言模型,专为边缘部署设计
人工智能·深度学习·机器学习·语言模型·自然语言处理·音视频·openai
yusaisai大鱼33 分钟前
tensorflow_probability与tensorflow版本依赖关系
人工智能·python·tensorflow
18号房客34 分钟前
一个简单的深度学习模型例程,使用Keras(基于TensorFlow)构建一个卷积神经网络(CNN)来分类MNIST手写数字数据集。
人工智能·深度学习·机器学习·生成对抗网络·语言模型·自然语言处理·tensorflow
神秘的土鸡41 分钟前
神经网络图像隐写术:用AI隐藏信息的艺术
人工智能·深度学习·神经网络
数据分析能量站42 分钟前
神经网络-LeNet
人工智能·深度学习·神经网络·机器学习
Jaly_W1 小时前
用于航空发动机故障诊断的深度分层排序网络
人工智能·深度学习·故障诊断·航空发动机
小嗷犬1 小时前
【论文笔记】Cross-lingual few-shot sign language recognition
论文阅读·人工智能·多模态·少样本·手语翻译
夜幕龙1 小时前
iDP3复现代码数据预处理全流程(二)——vis_dataset.py
人工智能·python·机器人