写点什么

在边缘实现机器学习都需要什么?

  • 2020-05-21
  • 本文字数:4896 字

    阅读完需:约 16 分钟

在边缘实现机器学习都需要什么?

说到机器学习,在计算方面,大多数边缘应用程序只执行推理,然而,随着 联邦学习(Federated Learning)等新兴技术的出现,这种情况在未来可能会发生变化。

但就目前而言,在小型微控制器和其他边缘设备上运行机器学习模型已经成为可能,这将带来各种各样有趣的应用。


边缘设备的定义在不同的应用中会有很大的差异,它包括从智能手机到自动驾驶汽车,以及介于两者之间的各种设备。目前,数量最多的边缘设备(也可以连接到网络),很有可能就是智能手机。越来越多的其他设备配备了小型 MCU(microcontroller,微控制器),它们不连接任何网络,用于家庭花园的智能喷水灭火系统等应用。



各种边缘设备


具体来说,全球智能手机的总数量已达数十亿部。连接的智能设备数量在不断增加,从智能恒温器到门铃,再到送货机器人。这些设备大多靠电池运行(也有像智能助理这样的例外),并连接到 wifi、蓝牙和/或移动网络。


在这些设备上进行机器学习时,通常会将设备传感器的数据发送回云端进行推理,该过程具有以下特点:


  • 消耗更多的能量(通过有线或无线网络移动数据会消耗能量)。

  • 导致应用程序受到较高延迟的影响。

  • 由于数据传输和云计算的成本,导致费用更高。

  • 需要额外的工作来处理数据隐私和安全问题。


这些高层次的优势使得机器学习模型嵌入到设备上变得至关重要,不过,这也带来了更多的数据隐私和安全问题。


说到机器学习,在计算方面,大多数边缘应用程序只执行推理,然而,随着连邦学习(Federated Learning)等新兴技术的出现,这种情况在未来可能会发生变化。


但就目前而言,在小型微控制器和其他边缘设备上运行机器学习模型已经成为可能,这将带来各种各样有趣的应用。请继续阅读本文,了解如何开始为边缘设备开发机器学习应用程序。

边缘架构

由于边缘产品的类型不同,它们的架构也不尽相同。目前使用的不同架构可以分为 5~6 类,如下图所示:



边缘应用架构


基于 ARM Cortex-A 架构的处理器赋能了今天几乎所有的智能手机,而基于 Cortex-M 的微控制器则用于键盘、智能手表、安全摄像头以及我们周围的大量其他产品。


基于 x86 的笔记本计算机、上网本等也有数以百万计的人使用,它们还用于 ATM 和各种其他产品。一些智能手机还搭载了高通(Qualcomm)和华为等公司开发的定制机器学习加速器


在功耗方面,不同的产品可以分为三类,从超低功耗的 Cortex-M 系列微控制器,到 NVIDIAMobileye德州仪器(Texas Instruments)的高性能自主汽车专用系统。



按功耗大致分组


ARM 公司最近推出了带有 NPU(Neural Processing Unit,神经处理单元)的 Ethos-N 系列处理器,该处理器与 Cortex-M 处理器相结合,可用于各种低功耗应用。NDP101 是一款低功耗 SoC 芯片,用于语音应用中的关键词分类。

模型动物园与模型

由于边缘设备的算力和内存有限,因此,边缘机器学习模型的关键属性是:


  1. 模型尺寸小:可通过量化(quantization)、剪枝(pruning)等方式实现。

  2. 更少的计算:可使用更少的层和不同的操作(如深度卷积)来实现。

  3. 仅执行推理:在大多数情况下,仅在设备上执行推理。


给定模型的优化过程会因应用程序而异:在某些应用程序中,如自动驾驶汽车,对准确率要求最高,但可能不会执行量化等模型压缩技术。



框架选择的流程图


针对特定平台进行优化的预训练模型可以显著提升推理速度,也可以用于迁移学习来训练特定应用的模型。它们还提供了一个很好的基准来比较自定义模型,并且还可以帮助开发团队更快地达到 MVP。TensorFlowPyTorch 是两个最流行的机器学习框架,它们可以在树莓派(Raspberry Pi)和 NVIDIA Jetson 等任何 Linux 兼容板上运行。下面是一些专门针对边缘模型的模型动物园和库。


  • Intel OpenVINO Model Zoo:Intel 提供了大量针对 Intel x86 CPU 优化的预训练模型。免费模型可用于人脸检测、行人检测、人体姿势估计等用例。OpenVINO 工具箱可以用来优化 Intel 产品的自定义模型。

  • iOS Core ML:像 GPT-2 和 BERT 这样的最先进模型的精简版可以在 iOS 设备上使用。

  • TensorFlow Lite:是 TensorFlow 生态系统的一部分,可以用在 Android、iOS 和其他各种边缘设备上部署机器学习模型。预训练模型可用于对象检测、姿势估计,使用 mobileBert 进行问答等等,这些都是针对 Android 设备的。ML KitFirebase 生态系统的另一个选项,也可以在 iOS 上使用。ML Kit 还有一个视觉 API,可以用来识别 400 个常见物体的图像,还可以使用 AutoML Vision Edge 来训练自定义模型。

  • PyTorch Mobile:是 PyTorch 生态系统的一部分,支持 Android、iOS 和其他边缘设备。PySyft 是一个用于保护机器学习隐私的库,与 PyTorch 一起使用,可以用在一些边缘设备上。

  • PocketFlow 是来自腾讯公司的一个开源项目,用于深度学习模型的自动压缩和加速。

  • ARM CMSIS NN:该库为 ARM Cortex-M 系列微控制器的卷积等常见操作提供了高效实现。在这篇关于 CMSIS-NNN 的论文中,ARM 描述了在 Cortex-M7 MCU 上运行 CNN 所做的各种优化。这里有几个例子。

  • Coral Edge TPU:Edge TPU 的预训练模型可用于图像分类、对象检测和图像分割等。

  • Fritz AI:为 iOS 和 Android 提供了预训练模型,可免费上手和实验。此外,Fritz AI 还有一个端到端的移动模型构建平台,目前还处于早期访问阶段。

云平台


硬件

传感器

在边缘应用中,传感器是关键,因为它们帮助我们收集和测量不同类型的环境信息,如温度、声音、图像、运动、湿度等。下面是一些有趣的传感器:


  • ST LSM6DSOX Inertial Sensor:这是一个带有三轴加速度计和三轴陀螺仪的惯性传感器。它还有一个机器学习核心,有 8 个独立的决策树,可以用来对运动模式进行分类。

  • Sensor TagSensor TileSensor Puck 是带有 BLE(Bluetooth low energy,低功耗蓝牙)和湿度、温度、环境光等多种环境传感器的开发套件。

边缘开发套件

有几家公司(这里列出了一长串这类公司的名单)正在研究深度学习加速器,用于深度神经网络的训练/推理;然而,目前可供开发人员开始开发的产品还很少。下面是一些现在可以购买的开发板列表,用于开发边缘人工智能应用:

低功耗板


Sparkfun Edge 和 Lattice iCE40 开发板


中功耗板


Coral Edge TPU 开发板和 NVIDIA Jetson Nano 开发板


  • Google Edge TPU:Google 前不久宣布的 Edge TPU,现已可购。这是 Coral 平台的一部分。开发板还包含一个来自 NXP 的 Cortex-A53 SoC,可以独立使用,并且有摄像头的连接器等。它可以使用 TensorFlow Lite 进行编程。Google 提供了一些性能数据,见这里。开发板(如上图)可以在这里购买。费用:149.9 美元

  • NVIDIA Jetson Nano:这是 NVIDIA 在 GTC 2019 上发布的 Edge AI 最新深度学习开发板。Jetson Nano 的主要优势之一是它包含了四核 ARM CPU,可以运行 Linux 系统,而 Intel 神经计算棒和 Edge TPU 加速棒需要单独的板子,比如树莓派等。它可以使用 TensorFlow、PyTorch 进行编程。费用:99 美元


有关 Coral Edge TPU 开发板和 NVIDIA Jetson Nano 的更详细比较,请查看这篇博文:《Google Coral Edge TPU 开发板与 NVIDIA Jetson Nano 开发板的硬件比较》(Google Coral Edge TPU Board Vs NVIDIA Jetson Nano Dev board — Hardware Comparison)。


  • Intel Neural Compute Stick 2(Intel 神经计算棒 2):这款 USB 外观的开发板采用了 Intel Myriad X 视觉处理单元(Vision processing unit,VPU) 。在 Myriad X 之前,Intel/Movidius 已经推出了 Myriad2,为第一代 Intel 神经计算棒提供动力。要进行编程,必须使用 IntelOpenVino 工具包。可在这里购买。费用:99 美元



Intel 神经计算棒



Coral USB


  • Coral USB Accelerator:这包含了 USB 外形尺寸类似于 NCS 2 的 Google Edge TPU,它可以与树莓派或任何笔记本计算机一起使用。费用:74.99 美元

  • Sipeed MAix M1 (RISC-V + Kendryte 120):这款用于树莓派的 Grove Hat,目前仅售 24.50 美元(预购结束后为 28.90 美元)。它拥有双核 600MHz RISC-V CPU 和 Kendryte K120 16 位神经网络处理器。费用:24.50 美元



  • Raspberry Pi(RPi,树莓派):树莓派采用四核 ARM Cortex-A7 系列处理器,可与 Edge TPU 加速棒结合,打造功能强大、易于使用的边缘人工智能平台。费用:35 美元



AWS DeepLens:这是来自 AWS 的开发套件,面向计算机视觉应用的开发人员。它可以在 Intel Atom 处理器上运行推理,并可以轻松地与 AWS IoT 服务集成,将推理结果发送到云端。费用:199 美元


结 语

在边缘开发人工智能应用需要使用受限的资源(内存、计算等),并对费用、功耗和面积进行优化,所有这些都使其成为当今人工智能领域最具挑战性的问题之一。


随着互联设备的兴起,以及这些嵌入式设备上的应用开发软件的发展,我们将看到更多的边缘应用使用机器学习来解决医疗、节能和机器人等领域的新问题,这里仅举几个例子。


作者介绍


Manu Suryavansh,机器学习工程师。


原文链接


https://heartbeat.fritz.ai/machine-learning-at-the-edge-μml-2802f1af92de


2020-05-21 08:301913
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 247.0 次阅读, 收获喜欢 1281 次。

关注

评论

发布
暂无评论
发现更多内容

华为自研PB级分布式时序数据库揭秘第一期:初识GaussDB(for Influx)

华为云数据库小助手

数据库 GaussDB(for Influx) 华为云数据库

Kubernetes手记(22)- K8S包管理器

雪雷

6月日更

Linux之touch命令

入门小站

Linux

TcaplusDB亮相全球云计算大会 一举斩获优秀解决方案奖

TcaplusDB

数据库 nosql tencentdb TcaolusDB

[TcaplusDB知识库]TcaplusDB高可用部署

TcaplusDB

nosql tencentdb TcaplusDB Tcaplus

公司给的期权有没有价值?

石云升

期权 职场经验 6月日更

TcaplusDB全球云计算大会一举斩获优秀解决方案奖

tcaplus

数据库 TcaplusDB

七种方式教你在SpringBoot初始化时搞点事情

L

Java

🏆「作者推荐」【JVM原理探索】字节码指令集调用执行流程分析(语法分析篇)

洛神灬殇

JVM Class字节码 6月日更 字节码指令

[译] R8 优化: Switch 场景下的枚举

Antway

6月日更

Scrum | 你需要知道这些

Python研究所

项目管理 Scrum 敏捷

THOR:MindSpore 自研高阶优化器源码分析和实践应用

华为云开发者联盟

网络 mindspore THOR 高阶优化器 THOR算法

云小课 | 华为云KYON:网段零修改上云,简单又好用

华为云开发者联盟

KYON企业级云网络 私网NAT网关 弹性负载均衡ELB 虚拟私有云VPC L2CG VPVEP

经典永流传,华为云媒体 AI 让老电影焕发新生

华为云开发者联盟

AI 云原生 音视频 电影修复 华为云媒体

一分钟懂5G

俞凡

5G

【TcaplusDB知识库】TcaplusDB高可用部署

tcaplus

数据库 TcaplusDB

带你认识Flink容错机制的两大方面:作业执行和守护进程

华为云开发者联盟

flink 守护进程 容错 作业执行 Flink 容错机制

mysql的存储引擎知多少

卢卡多多

KV存储引擎 MySQL 数据库 6月日更

JavaScript学习(九)

空城机

JavaScript 大前端 6月日更

在线html链接提取工具

入门小站

工具

zookeeper客户端zkclient和curator的api

赵镇

zookeeper

【熬夜整理近百份大厂面经】2022校招提前批面经总结分享(腾讯、字节、阿里、百度、京东等招聘信息+必考点+简历书写)

学无止境的阿奔

c++ 程序员 面试 后端 秋招

AI云市场的繁盛之夏:AI花开果熟,百度抢先品尝第一口甜

脑极体

四份深入源码层面笔记,学完后让你彻底精通Spring Cloud!

Java架构追梦

Java 架构 面试 微服务 SpringCloud

矩阵分解推荐算法(十八)

数据与智能

推荐算法 矩阵运算

快手严厉整治违规商业内容:必须构建平台良性生态链

石头IT视角

“动态规划”这词太吓人,其实可以叫“状态缓存”

华为云开发者联盟

Java 动态规划 超时 dp数组 状态缓存

国际禁毒日 | 和TcaplusDB一起向毒品say NO!

TcaplusDB

nosql tencentdb TcaplusDB database

华为云官网前端的技术演进与低代码实践

华为云开发者联盟

大前端 低代码 可视化 页面 华为云官网

TcaplusDB君 | 行业新闻汇编(6月24日)

tcaplus

数据库 TcaplusDB

5分钟速读之Rust权威指南(三十)多线程

wzx

rust

在边缘实现机器学习都需要什么?_AI_Manu Suryavansh_InfoQ精选文章