首页 > 编程笔记 > 通用技能 阅读:13

边缘人工智能和人工智能的区别(新手必看)

边缘人工智能是常规人工智能的一个子集,所以有很多相同的适用原则。但是,对于边缘设备上的人工智能来说有一些特殊的事情需要考虑,以下是一些要点。

在边缘训练是少见的

很多 AI 应用程序都是由机器学习驱动的。机器学习包含训练和推理两个过程:
边缘 AI 和机器学习通常指的是推理。训练模型比推理需要更多的计算和内存,而且训练过程通常需要一个已标记的数据集。这些东西在边缘很难满足,因为设备资源有限,并且数据是原始的、未经过滤的。

出于这个原因,边缘 AI 中使用的模型在部署到设备上之前,通常会使用相对强大的计算资源以及经过清理和标记(通常是手动标记)的数据集进行训练。从技术上讲,在边缘设备本身上训练机器学习模型是可行的,但非常少见,主要是因为缺乏训练和评估所需的标记数据。

设备上的训练有两种普遍的类型:

边缘AI的重点是传感器数据

边缘设备令人兴奋的地方在于,它们离数据产生的地方很近。通常,边缘设备配备了传感器,使它们能够立即与环境连接。边缘 AI 部署的目标是理解这些数据,识别模式并使用它们做出决策。

传感器数据往往数量庞大、有噪声且难以管理,它以每秒数千次的高频率采集数据,运行边缘 AI 应用程序的嵌入式设备在有限的时间内收集这些数据、处理数据、将其输入某种 AI 算法,并根据结果采取行动。这是一个重大的挑战,特别是考虑到大多数嵌入式设备的资源有限,没有 RAM 来存储大量数据。

处理原始传感器数据的需求使得数字信号处理成为大多数边缘 AI 部署的关键部分。在任何高效和有效的实现中,信号处理和 AI 组件必须作为一个系统一起设计,在性能和准确性之间进行权衡。

很多传统的机器学习和数据科学工具都专注于表格数据,比如公司财务或消费产品评论。相比之下,边缘AI工具的构建是为了处理持续的传感器数据流。这意味着构建边缘AI应用程序需要一整套完全不同的技能和技术。

机器学习模型可以变得非常小

边缘设备的设计通常是为了限制成本和功耗,一般来说,比起个人计算机或网络服务器,边缘设备的处理器处理速度更慢,内存更小。

目标设备的限制意味着,当机器学习被用来实现边缘AI时,机器学习模型必须非常小。在一个中型微控制器上,可能只有一百多 KB 的 ROM 可用于存储模型,还有一些容量更小的设备。由于较大的模型需要更多的时间来执行,因此处理速度较慢的处理器也会推动开发人员部署较小的模型。

缩小模型涉及一些权衡。更大的模型有更多的学习能力,当一个模型变小时,会失去一些表征其训练数据集的能力,并且可能变得不那么准确。所以创建嵌入式机器学习应用程序的开发人员必须在模型的大小和所需的准确性之间进行权衡。

已经存在各种各样的压缩模型技术,可以减小模型尺寸,使模型适合更小的硬件,占用更少的计算时间。这些压缩技术可能非常有用,但有时也会以微妙而有风险的方式来影响模型的准确性。

除了图像处理之类的任务需要解释涉及很多细微差别的视觉信息,并不是所有的应用程序都需要大而复杂的模型,通常对于更简单的数据,几 KB(或更少)的模型就足够了。

从反馈中学习是有限的

AI 应用程序是通过一系列迭代反馈循环来构建的。我们会完成一些任务,衡量它的表现,然后找出需要改进的地方。

例如,一个健身监控器可以根据从传感器收集的数据估计用户跑 10 km 所用的时间,为了测试它是否运行良好,可以用用户实际跑 10km 的时间验证预测是否正确。如果不正确,可以把用户的真实数据添加到训练数据集中,并尝试训练一个更好的模型。

如果有可靠的网络连接,这应该不会太难,可以把数据上传到服务器上。但边缘AI的神奇之处在于,可以将 AI 应用部署到网络带宽有限的设备上。在这种情况下,可能没有足够的带宽来上传新的训练数据。甚至可能根本无法上传任何东西。

这对我们的应用程序开发工作流提出了一个很大的挑战。当我们对系统的访问受限时,如何确保系统在现实世界中表现良好?在收集更多数据如此困难的情况下,我们如何改进自己的系统?这是边缘 AI 开发的核心主题,我们将在本书中大量讨论。

计算是多样化和异构的

大多数服务器端的 AI 应用运行在普通的x86处理器上,添加了一些 GPU(图形处理单元)进行深度学习推理。此外,如 Arm 公司最近推出的服务器 CPU,以及 Google 的深度学习加速器 TPU(张量处理单元)也用于深度学习的推理,但大多数工作负载运行在非常普通的硬件上。

相比之下,嵌入式世界包括一系列令人眼花缭乱的设备类型:
每个类别都包括来自许多不同制造商的无数设备,每个设备都有一组独特的构建工具、编程环境和接口选项。这可能会让人不知所措。

硬件的多样性意味着对于任何给定的用例,都可能有多个合适的系统。选择合适的方案是一个难题,我们将在本书的整个过程中讨论这个挑战。

目标通常是“足够好”

对于传统 AI,目标通常是在不考虑成本的情况下获得尽可能好的性能。在服务器端 AI 应用中使用的深度学习模型的大小可能达到千兆字节,依赖于强大的 GPU 计算,这些大模型能够及时运行。当算力不是障碍时,最准确的模型往往是最好的选择。

边缘 AI 的好处也伴随着一些严格的限制。边缘设备的计算能力较差,通常需要在模型的性能和准确性之间进行权衡,这是一个棘手的选择。

这当然是一个挑战,但不是障碍。对于大量的用例来说,在边缘运行 AI 的巨大好处很容易超过准确性稍有降低的代价。对于其他少量的设备来说,有边缘 AI 也比完全没有要好得多。

我们的目标是建立能够充分利用这种“足够好”的性能的应用程序——一种被 Alasdair Allan 优雅地描述为 Capable Computing(https://oreil.ly/W4gDl)的方法。任何性能损失都应被考虑在内,成功做到这一点的关键便是使用一些工具来帮助我们了解自己的应用程序在现实世界中的性能。

工具和最佳实践仍在不断演进

作为一项刚刚开始大规模采用的全新技术,边缘 AI 仍然依赖于为大尺寸的、服务器端的 AI 模型开发的工具和方法。事实上,大多数 AI 研究仍然专注于在巨大的数据集上构建大型模型,这有两个方面的影响。

第一,我们经常会发现自己使用来自数据科学和机器学习领域的现有开发工具。从积极的方面来看,这意味着我们可以从一个丰富的库和框架的生态系统中获益,这些库和框架已被证明是行之有效的。然而,现有工具很少会优先考虑在边缘上重要的事情,比如小模型尺寸、计算效率以及在少量数据上训练的能力。我们经常需要做一些额外的工作来关注这些重点。

第二,由于边缘 AI 研究是刚兴起的,我们可能会看到极其迅速的演变。随着该领域的发展,越来越多的研究人员和工程师开始关注它,那么必然会逐渐出现提高效率的新方法,以及创建有效应用程序的最佳实践和技术。这种快速变化的前景使边缘AI成为一个非常令人兴奋的领域。

相关文章