TinyML:下一轮人工智能革命

由 NASA 引领的小型化风潮已经席卷了整个消费电子产品产业 。 现在 , 一个领针中即可保存全部贝多芬作品 , 并可使用耳机聆听 。 ———天体物理学家、科学评论员 Neil deGrasse Tyson
……超低功耗嵌入式设备的普及 , 以及用于微控制器的 TensorFlow Lite 等嵌入式机器学习框架的推出 , 意味着人工智能驱动的 IoT 设备将得到大规模普及 。 ———哈佛大学副教授 Vijay Janapa Reddi
TinyML:下一轮人工智能革命文章插图
图 1 嵌入设备上的 TinyML 概览图
模型并非越大越好 。
本文是 TinyML 系列文章中的第一篇 , 目的是向读者介绍 TinyML 概念及其未来潜力 。 本系列的后续文章中 , 将深入介绍一些特定的应用、具体实现和教程 。
引 言过去的十年中 , 由于处理器速度的提高和大数据的出现 , 我们见证了机器学习算法的规模呈指数级增长 。 最初 , 模型的规模并不大 , 在本地计算机中运行 , 使用 CPU 的一或多个内核 。
此后不久 , GPU 计算使人们可以处理更大规模的数据集 , 并且通过基于云的服务 , 例如 Google Colaboratory 等 SaaS 平台 , Amazon EC2 Instances 等 IaaS , GPU 技术变得更易于获取 。 与此同时 , 算法仍可在单机上运行 。
最近 , 专用的 ASIC 和 TPU 已可提供大约 8 个 GPU 的处理能力 。 这些设备的发展 , 增强了将学习算法分布到多个系统中的能力 , 满足了规模不断增大的模型需求 。
2020 年 5 月发布的 GPT-3 算法 , 推动模型的规模达到登峰造极的水平 。 在 GPT-3 的网络架构中 , 包含了数量惊人的 1750 亿个神经元 , 是人脑中约 850 亿个神经元的两倍多 , 也是 Turing-NLG 神经元数量的 10 倍以上 。 Turing-NLG 发布于 2020 年 2 月 , 是有史以来的第二大神经网络 , 其中包含约 175 亿个参数 。 有人估计 , GPT-3 模型的训练成本约为 1000 万美元 , 使用约 3GWh 的电力 , 是三个核电站一小时的输出 。
尽管 GPT-3 和 Turing-NLG 的成就值得称赞 , 但它们自然也引发了一些业内人士对人工智能行业日益增长碳足迹的批评 。 另一方面 , 它们也激发了人工智能领域对更为节能计算的兴趣 。 过去数年中 , 更高效的算法、数据表示和计算等理念 , 一直是机器学习微型化(TinyML)这一看似毫无关联领域的关注点 。
TinyML 是机器学习和嵌入式 IoT 设备的交叉领域 , 是一门新兴的工程学科 , 具有革新许多行业的潜力 。
TinyML 的主要受益者 , 是边缘计算和节能计算领域 。 TinyML 源自物联网 IoT 的概念 。 物联网的传统做法 , 是将数据从本地设备发送到云端处理 。 一些人对这一方式在隐私、延迟、存储和能源效率等方面存在疑虑 。

  • 能源效率 。 无论通过有线还是无线方式 , 数据传输都非常耗能 , 比使用乘积累加运算单元(multiply-accumulate units , MAU)的本机计算高出约一个数量级 。 最节能的做法 , 是研发具备本地数据处理能力的物联网系统 。 相对于“以计算为中心”的云模型 , “以数据为中心”的计算思想已得到了人工智能先驱者的一些先期探讨 , 并已在当前得到了应用 。
  • 隐私 。 数据传输中存在侵犯隐私的隐患 。 数据可能被恶意行为者拦截 , 并且存储在云等单个位置中时 , 数据固有的安全性也会降低 。 通过将数据大部保留在设备上 , 可最大程度地减少通信需求 , 进而提高安全性和隐私性 。
  • 存储 。 许多物联网设备所获取的大部分数据是毫无用处的 。 想象一下 , 一台安防摄像机每天 24 小时不间断地记录着建筑物的入口情况 。 在一天的大部分时间中 , 该摄像机并没有发挥任何作用 , 因为并没有什么异常情况发生 。 采用仅在必要时激活的更智能的系统 , 可降低对存储容量的需求 , 进而降低需传输到云端的数据量 。
  • 延迟 。 标准的物联网设备 , 例如 Amazon Alexa , 需将数据传输到云来处理 , 然后由算法的输出给出响应 。 从这个意义上讲 , 设备只是云模型的一个便捷网关 , 类似于和 Amazon 服务器之间的信鸽 。 设备本身并非智能的 , 响应速度完全取决于互联网性能 。 如果网速很慢 , 那么 Amazon Alexa 的响应也会变慢 。 自带自动语音识别功能的智能 IoT 设备 , 由于降低甚至是完全消除了对外部通信的依赖 , 因此降低了延迟 。
上述问题推动着边缘计算的发展 。 边缘计算的理念就是在部署在云“边缘”的设备上实现数据处理功能 。 这些边缘设备在内存、计算和功能方面都高度受限于设备自身的资源 , 进而需要研发更为高效的算法、数据结构和计算方法 。