【论文】略读笔记65-前沿-真实与仿真混合的边缘DML测试平台
📖《EdgeTB: A Hybrid Testbed for Distributed Machine Learning at the Edge With High Fidelity》
2022 年发表于 CCF-A 类期刊 TPDS。
🎯需求
- 边缘分布式机器学习(DML)已成为在数据源附近提供低延迟智能的重要课题。
- 1)边缘计算给【传统应用】带来了改进。
- 近年来,移动设备和物联网设备的数量及其产生的数据量**大幅增加。将这些数据传输到云并进行处理**给网络和云带来了巨大压力。
- 特别是在流媒体直播等对延迟敏感的场景中,需要传输和处理大量视频数据。高延迟会严重降低用户体验。
- 为解决这一问题,雾计算(也称为边缘计算)正在兴起。它将大量计算设备分布到网络边缘,使计算和存储资源更接近终端用户。因此,边缘计算大大减少了终端用户访问网络服务的延迟,从而改善了用户体验。
- 2)除了关注边缘计算给传统应用带来的改进,研究人员还对【在边缘部署 DML 】感兴趣。
- 在传统的集中式机器学习中,用户需要将数据上传到云端。云中许多强大且互联的计算设备会根据这些数据高效地训练机器学习模型。
- 然而,随着人们隐私保护意识的提高,他们不愿意分享自己的敏感数据。因此,在边缘部署 DML(如 Federated Learning、Gossip Learning 和 E-Tree Learning),既能充分利用数据价值,又能保护用户数据隐私,已成为一种流行的方法。
- 在联邦学习中,用户设备始终持有数据,同时负责训练任务。用户只需上传机器学习模型,边缘基础设施就会聚合这些模型,加快训练任务的完成。
- 这与传统的集中式机器学习有很大不同,因为用户设备的性能有限,而且用户设备与边缘基础设施之间的网络不稳定、速度慢。
- 因此,边缘计算场景中使用的 DML 的开发和测试应充分考虑计算和网络资源的限制。
- 1)边缘计算给【传统应用】带来了改进。
- 在此基础上,应用程序在部署前应进行全面测试,以尽可能发现潜在问题。
🚧现状
- 然而,DML 的开发和测试都缺乏足够的支持。要实现快速开发,就需要能抽象出 DML 一般功能的可重用库。
- 研究界通常使用测试平台(tested)来提供测试环境。
- 测试平台主要有三种类型,即物理测试平台、模拟测试平台和仿真测试平台。为避免歧义,我们使用 “计算设备 ”来指现实世界中的物理硬件(如个人电脑、笔记本电脑和智能手机),使用 “节点”(物理、虚拟、模拟和仿真)来指测试环境中的实体。
- 1)高保真的理想测试方法是使用由相互连接的计算设备组成的物理测试平台 physical testbed。
- 简介:在物理测试台中,每台计算设备都直接充当测试环境中的物理节点。此外,计算设备通过网络(如以太网、WiFi 和蓝牙)进行连接。因此,物理测试平台可为应用提供高计算和网络保真度的测试环境。
- 案例:文献中提出了一些雾计算物理测试平台的架构或原型。研究人员还可以使用一些无线传感器网络(WSN)物理测试平台来验证其基于物联网的应用。
- 缺点:不过,物理测试平台往往规模较小,部署和维护成本较高。此外,计算设备之间的网络拓扑结构是固定的,因此很难提供与边缘计算场景类似的动态网络环境。
- 2)为了降低成本和提高网络灵活性,研究人员可以使用模拟测试平台 simulated testbed(模拟器 simulator)。
- 简介:模拟器对计算设备和网络进行抽象建模,从而在程序(如 Java 程序和 Python 程序)中提供测试环境。
- 案例:没有一种模拟器能满足所有类型测试环境的要求,因此研究人员针对不同的研究课题提出了各种模拟器。
- CloudSim 是著名的云计算模拟器。
- 在它的基础上,研究人员实现了许多雾模拟器,包括 iFogSim、MyiFogSim 和 edgeCloudSim。
- 有些模拟器并非基于 CloudSim,如 YAFS 和 FogNetSim++。
- 缺点:由于缺乏计算和网络保真度,模拟器只适合粗略地尝试新想法。研究人员仍需进行更可靠的验证。
- 测试环境中的模拟节点只是程序中的实例。因此,模拟器并没有连接模拟节点,而只是使用算法来模拟延迟和丢包等网络链接属性。
- 此外,由于模拟器本身是一个程序,研究人员无法部署应用程序对其进行测试。他们只能根据模拟器的抽象模型重新实现应用程序的主要工作流程。
- 3)模拟测试平台 emulated testbed(仿真器 emulator)通过使用虚拟化技术(如虚拟机(VM)技术和容器化技术),在物理测试平台和模拟测试平台之间实现了良好的平衡。
- 简介:它在单个计算设备中创建了多个计算空间和网络空间相互隔离的仿真节点。因此,仿真节点可以运行应用程序并通过网络相互通信。
- 案例:
- EmuFog 使用容器化技术在单个计算设备上创建多个仿真节点,而 EmuEdge 则使用虚拟机技术来实现这一目标。
- 部分研究将多个计算设备同时用作容器仿真器,以支持更大的规模。
- 缺点:在这些作品中,所有计算设备都被用作仿真器,以形成纯仿真测试平台,而不考虑计算设备计算和存储资源的差异。然而,只有拥有足够计算和存储资源的计算设备才适合作为仿真器,而低性能的计算设备则不适合。因此,尽管仿真器的计算和网络保真度高于模拟器,但仿真器与物理试验台之间仍有很大差距。
- 研究界通常使用测试平台(tested)来提供测试环境。
- 总结而言,现有的物理测试平台通常规模较小,缺乏网络灵活性,而模拟器和仿真器等虚拟测试平台则缺乏保真度。
- 另外,在 DML 的研究中,对测试的支持不够,对开发的支持也很缺乏。
- 一方面,DML 是需要执行才能得到结果(如模型精度和模型收敛时间)的应用程序,因此不能部署应用程序的模拟器不适合测试 DML。此外,现有的物理测试平台和仿真器都是面向 DMLs 以外的特定研究领域,或者是通用平台,没有为 DMLs 开发提供专门支持。
- 另一方面,DMLs 应用程序中用于解决各种研究问题的许多部件都是可重复使用的。例如,在 Federated Learning 中,有关神经网络模型和客户选择的研究可以使用相同的模型训练、聚合和传输功能模块。然而,目前还没有对这些通用功能模块进行抽象和封装。因此,研究人员只能依靠更原生的机器学习库(如 TensorFlow)来开发 DML 中的所有功能模块。这大大增加了开发 DML 的难度,也不利于同行之间验证 DML 和实验。
🛩创新
- 本文提出的 EdgeTB 是一种新型混合测试平台,用于研究边缘计算场景中的 DML。利用 EdgeTB,研究人员可以快速开发 DML,并在高保真、大规模和网络灵活的测试环境中进行测试。
- 1)EdgeTB能重要的是,
- 1)在 EdgeTB 中,提供大量仿真节点来生成大规模、网络灵活的测试环境,同时结合物理节点来保证保真度。EdgeTB 统一管理物理节点和仿真节点,并通过动态配置支持节点间的任意网络拓扑结构。
- 计算设备可以充当物理节点或仿真器,根据计算设备的性能或研究人员的要求提供仿真节点。
- a. 一方面,物理节点的存在提高了 EdgeTB 的计算和网络保真度,使其接近物理测试平台。
- b. 另一方面,与物理测试平台相比,仿真器的采用使 EdgeTB 更容易生成大规模、网络灵活的测试环境。
- c. 此外,为了提高可扩展性,EdgeTB 采用了控制器-工作器架构,并提供了统一管理物理节点和仿真节点的工具。
- d. 重要的是,EdgeTB 允许用户动态配置节点间的网络拓扑,以便在运行测试时生成非固定的边缘网络。
- 我们对现有的边缘计算测试平台进行了定性比较。EdgeTB 位于物理试验台和仿真试验台之间。由于 EdgeTB 并不强制要求将哪些设备用作仿真器或物理节点,因此用户可以决定在测试保真度、网络灵活性和成本之间取得更好的平衡。当所有计算设备都用作物理节点时,EdgeTB 将向物理测试平台靠拢。当所有计算设备都用作仿真器时,EdgeTB 将向仿真测试平台靠拢。
- 计算设备可以充当物理节点或仿真器,根据计算设备的性能或研究人员的要求提供仿真节点。
- 2)我们提出了面向角色的开发方法,以支持 DML 的快速开发。
- 为了支持 DML 的快速开发,我们提出了面向角色的开发方法,其中角色是一种编程抽象,可从各种 DML 中提取模型训练和模型聚合等通用功能模块。EdgeTB 封装了可重复使用的库,以支持面向角色的开发。用户可以使用这些库快速开发 DML,并用自定义功能模块替换与其研究课题相关的默认功能模块。
- 我们的贡献总结如下:
- 1)我们设计并实现了 EdgeTB,这是一个混合测试平台,可提供大量仿真节点来生成大规模、网络灵活的测试环境,同时结合物理节点来保证保真度。这是首个跨仿真器和物理边缘计算设备构建的混合边缘计算测试平台。
- 2)我们提出了面向角色的开发方法,并封装了可重复使用的库,以支持 DML 的快速开发。这是第一个用于开发任意 DML(如联邦学习、Gossip学习和E-Tree学习)的通用库。
- 3)我们进行了大量的案例研究和实验,证明研究人员可以使用 EdgeTB 开发 DML 并对其进行高保真测试。
📊效果
- 通过案例研究和实验,我们证明了 EdgeTB 为高效开发和测试各种结构的 DML 提供了便利,并具有高保真度和可扩展性。
- EdgeTB 组件是用 Python (v3.6) 实现的,约有 3000 行代码,可在 https://github.com/Lin-1997/Edge-TB 上获取。
⛳️未来机会/开放性问题
- 1)仅 CPU 仿真。
- EdgeTB 中的仿真节点只使用 CPU 资源,因为目前对 GPU 资源隔离的支持还不够。
- 通过 CPU 资源隔离,EdgeTB 可以将不同仿真节点的工作负载调度到不同的物理 CPU 线程上,从而使仿真节点独占 CPU 资源(相对而言)。
- 假设仿真节点使用 GPU 资源。在这种情况下,它们需要等待 GPU 驱动程序的调度,以争夺 GPU 资源的使用权。这与现实世界中每台设备都有自己的硬件资源这一事实背道而驰。
- 2)数据并行和模型并行架构。
- 本文提到的架构是数据并行架构(DPA)。在 DPA 中,每个节点都会维护一份本地模型副本,并在其数据上进行训练,同时定期与其他节点同步模型。基本角色 “聚合器”(Aggregator)和 “训练器”(Trainer)适用于实现 DPA。
- 不过,另一种称为模型并行架构(MPA)的架构会对 DNN 进行分区,并为每个节点分配子层集。DNN 的中间输出(前向传播)和相应梯度(后向传播)在节点之间传输。因此,聚合器和训练器不适合实施 MPA。
- 在未来的工作中,我们将探索适合实施 MPA 的角色。
- 3)仿真节点部署。
- 目前,用户需要安排仿真节点的部署。然而,不同物理设备上的仿真节点可能会使用超出网络接口卡(NIC)能力的带宽。
- 在未来的工作中,我们将开发在同一物理设备上部署大带宽需求仿真节点的算法。这样,它们之间的网络通信就不会通过网卡。
- 4)为什么不是 Kubernetes。
- Kubernetes 不支持使用计算设备作为物理节点(底层物理机和容器分层,不能作为同一层资源使用),而我们需要物理节点来增强测试的真实性。
- 由于 Kubernetes 用于生产级容器编排,其网络模型侧重于服务发现和负载平衡。然而,这使得定制仿真节点之间的链接属性具有挑战性。
- 在未来的工作中,我们将整合现代 SDN 软件(如 Open vSwitch)来丰富 EdgeTB 的网络模型,这也与 Kubernetes 的网络模型相冲突。
🧠疑问
- 核心逻辑:边缘分布式机器学习(DML)应用广泛 -> 需要测试 -> 现有的物理测试平台通常规模较小,缺乏网络灵活性,而模拟器和仿真器等虚拟测试平台则缺乏保真度 -+- 针对DML的测试、开发支持更不够,无法使用现有testbed没有特定于 DML特点的测试(例如设定节点间任意网络拓扑功能)和开发(例如模块复用功能) -> 结合真实与仿真testbed优点,支持 DML所需动态复杂网络拓扑需求,支持模块复用的开发功能。
- 面向 DML 的测试具有什么特点?为什么通用平台不能拿来用?
- 网络拓扑复杂,通用平台不注重该问题。(文章总结得更偏向边缘资源的特点,和 DML 应用似乎没啥关系)
- 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
- 如果你喜欢这篇文章,欢迎动动小手给我一个follow或star。
🗺参考文献
- 标题: 【论文】略读笔记65-前沿-真实与仿真混合的边缘DML测试平台
- 作者: Fre5h1nd
- 创建于 : 2024-09-27 12:32:36
- 更新于 : 2024-10-08 11:36:35
- 链接: https://freshwlnd.github.io/2024/09/27/literature/literatureNotes65/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论