硬件和人工智能(AI)解决方案的不断进步,使一系列软件系统的部署更加贴近用户,从而增加了边缘软件系统范例的应用。边缘系统支持将计算部署在更靠近数据生成和需要的地方,并提供减少延迟、优化带宽、提高弹性和可用性等优势。在高度不确定和资源有限的环境中工作的用户,如急救人员、执法人员和士兵,可以从边缘系统中大大受益,从而支持更及时的决策。遗憾的是,工业界和研究人员在很大程度上忽视了了解边缘系统的不同架构方法如何影响优先质量问题,但这对国家和地方安全、资源优化利用和及时决策至关重要。工业界大多关注边缘系统的硬件和网络方面,而很少关注实现边缘功能的软件。本文介绍了我们为填补这一空白所做的工作,定义了高度不确定环境中边缘系统的参考架构,并展示了在实践中如何实施该架构的实例。
图 1:高度不确定环境中边缘系统的拟议参考架构--分层视图
边缘软件系统通常是更大分布式系统的一部分,云节点和边缘节点之间存在交互,边缘节点充当近端用户和云之间的中介。云到边缘连续体(或边缘到云连续体)是用来描述云和边缘节点之间交互的术语,其中数据和计算根据需要在两者之间移动。
如何满足在高度不确定环境中运行的边缘系统的要求,其主要驱动因素是不确定性的大小。为了支持云到边缘的连续性,同时管理和适应这种不确定性,边缘系统需要具备以下能力:
图 1 显示了高度不确定环境中边缘系统的拟议参考架构,该架构源于我们在边缘软件系统方面的现有研究,并通过在实际系统中的应用(包括第四节中描述的系统)得到了完善。该架构特别提出了人工智能/移动语言功能,因为这些功能在边缘的部署越来越多,主要用于数据处理和快速决策。由于边缘设备对数据的依赖和昂贵的计算需求,人工智能/移动语言功能尤其会受到边缘设备计算资源限制的挑战[4]。现在,我们将从上到下逐层介绍该架构。
人机界面 (HMI) 服务。这些服务是支持现场决策的所有可视化和用户界面(UI)组件。人机界面服务必须简单明了,并利用先进的输入方法、上下文感知和自动化来应对操作环境条件造成的高认知负荷。
图 1 中间层的左侧--标为标准应用服务--对应的是适用于任何边缘软件系统的更传统的服务。在许多情况下,由于并非所有边缘设备都极其有限,而且功能越来越强大,因此它们通常甚至无需进行边缘优化:
边缘优化应用服务。资源受限设备上的边缘 AI/ML 应用程序需要包括传统模型的更快版本,利用 TensorRT [10] 和 DeepStream等加速和优化框架。这些框架具有 "硬件感知 "能力,能够针对目标设备做出最佳加速决策。在某些情况下,加速可能会降低精度,从而产生初始结果,有时甚至是粗粒度结果。即使在这种情况下,这些结果也能让用户更快地做出反应,而不是等待不可靠的云资源提供结果,即使它们能提供更详细、更准确、更细粒度的答案。
边缘优化应用支持服务。这些是收集环境信息、优化资源使用和适应运行条件的主要服务。
边缘优化服务协调。这是由 k3s和 MicroK8s等商业和开源产品为受限边缘设备提供的协调服务。
服务虚拟化。考虑到云到边缘的连续性和边缘设备的异构性,服务虚拟化是云到边缘以及边缘设备之间计算分配的关键。这一层的服务包括对虚拟机、容器和本地操作系统服务的支持。
边缘系统的开发和部署支持。在高度不确定的环境中开发和部署边缘系统的服务贯穿所有层,例如,最小化容器以解决带宽和计算资源有限的问题(如 SlimToolkit),以及剖析以了解应用程序是否能在边缘设备上有效运行(如 htop)。