一、摘要
边缘推理是一项能够在靠近数据源的客户端上实现实时数据处理和分析的技术。 为了实现服务级目标(SLOs),例如30%的推理时延降低,学界通常采用缓存技术来减少流数据推理任务中的冗余计算并加速推理。由于任务和数据的相关性,在客户端之间共享缓存信息可以提升推理的性能。 然而,不同客户端间数据的非独立同分布(non-IID)特性以及长尾分布现象,会导致缓存命中率的降低和推理时延的增加。 为了解决上述挑战,我们提出了一种高效的推理框架——CoCa,通过多客户端协作缓存机制加速边缘推理。 在客户端上,模型预设了多层缓存层,以实现动态地缓存推理加速。在推理过程中,模型根据实际激活的缓存层按序依次进行缓存查找。 在服务器上,CoCa使用二维全局缓存表来定期聚合客户端的信息,从而缓解non-IID数据的影响。 在客户端缓存分配过程中,CoCa首先根据每一类别的样本出现的频率和最近一次出现的时间戳来综合评估类别的重要性,然后选择重要的类别以应对长尾分布问题。最后,CoCa动态地激活缓存层来在查询开销和准确率之间达到平衡。 实验结果表明,CoCa在VGG、ResNet和AST模型上将推理时延降低了23.0%到45.2%,同时仅带来微小的准确率损失。
本文工作已被 CCF 推荐 A 类国际会议 IEEE 41st International Conference on Data Engineering (ICDE 2025) 录用。论文信息如下:
论文标题: Many Hands Make Light Work: Accelerating Edge Inference via Multi-Client Collaborative Caching 论文作者: Wenyi Liang, Jianchun Liu, Hongli Xu, Chunming Qiao, Liusheng Huang
第一作者简介: 梁文艺,2022年本科毕业于中国科学技术大学,现为中国科学技术大学硕士三年级学生,主要致力于边缘计算和联邦学习的研究。
二、研究意义
深度神经网络(DNN)在流数据的实际处理任务中得到了广泛应用,例如虚拟/增强现实(VR/AR)和自动驾驶等。 传统的基于DNN的流数据推理任务通常通过云服务器管理,但这种方法面临几个重大的挑战。 首先,将任务卸载到服务器会产生大量数据传输,从而影响服务质量(QoS),例如响应时延。这对于像自动驾驶这样对时延高度敏感的应用影响尤甚。 其次,隐私保护日益受到重视。这些因素促使推理过程逐步向靠近数据源的边缘计算转变。 边缘计算范式不仅通过减少对远程服务器的依赖来缓解时延问题,还通过本地化数据处理增强了数据隐私。 另一方面,边缘设备日益增强的计算能力推动了流数据推理任务的普及,其中驾驶辅助系统是一个典型的应用场景。 为满足这些任务的低延迟需求,一个自然的解决方案是利用缓存机制,该机制通过利用视频流的高时间局部性以及连续帧之间的相似性来加速推理。具体来说,可以将前一次推理的中间结果存储在缓存中,以便快速访问和复用,从而避免对视频流中相似或相同帧的冗余计算。
尽管缓存机制具有加速推理的潜力,但要进一步提高推理性能,需要解决与数据分布相关的两个主要挑战。 (1)非独立同分布:客户端生成的数据往往表现出分布的异质性。例如,在协作驾驶辅助任务中,多台摄像头捕获的视频由于位置、环境和视角不同而存在差异。这种异质性使得难以使用统一的缓存来高效处理不同客户端的数据特性。 (2)长尾分布:实际数据通常呈现长尾分布,其中少量类别频繁出现,而大量类别则出现频率较低。例如,在对驾驶视频的分析中,正常驾驶行为常见且频繁,而异常行为则稀少且多样化,从而形成丰富的长尾分布[1]。传统的缓存机制(如最近最少使用策略)难以高效管理和检索这些和稀有事件相关的数据,导致缓存利用率低下并增加响应时延。 这些分布不均衡的特性对边缘推理加速提出了重大挑战。
为应对上述挑战,研究者们已经做出了许多努力。LearnedCache[2] 使用多出口机制和神经网络模拟缓存,通过预测缓存命中来实现推理的提前终止,从而加速推理。LearnedCache尝试通过频繁重新训练出口模型来适应客户端的数据分布特性。然而,频繁重训练带来的高计算开销会降低QoS,甚至违反SLOs。此外,在长尾分布下,低频类别数据通常不足以支持有效的重训练。为了减轻计算开销,SMTM[3] 利用中间推理结果的低维表示(即语义信息)作为缓存匹配条目。该方法根据每个类别样本的总出现频率和最近出现时间戳来评估其重要性,有效解决了长尾分布问题。然而,SMTM的缓存分配策略在多类别频繁出现的推理场景中通常会导致缓存查找时间增加和整体推理时延上升。 上述方法主要关注在单客户端环境下的集中式推理的加速。然而,随着边缘智能的发展,多客户端协作正逐步被探索以提升推理性能。FoggyCache [4] 引入了跨客户端的相似计算重用,强调客户端数据的时空相关性。初始推理请求在本地处理;当缓存未命中时,查询将被提交至服务器,随后本地缓存使用LRU替换策略进行更新。FoggyCache通过聚合不同客户端的样本来作为服务器端的查询条目。这缓解了non-IID问题,并利用跨客户端的数据重用实现了推理加速。然而,LRU策略在长尾分布下通常失效,导致缓存命中率和效率降低。综上,现有方法始终未能充分解决non-IID和长尾分布挑战。
基于此,我们提出了CoCa框架。它采用多客户端协作缓存机制,利用数据的时间和空间相似性,克服上述挑战并加速推理。具体来说,CoCa采用了客户端-服务器缓存形式。边缘服务器维护一个二维全局缓存表,其中列对应于模型中预设的缓存层,行对应不同层的具体类别的条目。CoCa定期从客户端聚合信息来更新服务器上的全局缓存,从而缓解non-IID数据的影响并捕获客户端的上下文特征变化。服务器随后从全局缓存中提取子表,个性化分配缓存给每个客户端,这些子表对应特定缓存层中频繁出现的类别条目(称为热点类)。为解决长尾分布问题,我们基于类别总频率和最近出现时间戳综合评估热点类。接收到缓存后,客户端使用缓存进行模型推理。在推理过程中,模型依次在每个被激活的缓存层中进行查找,计算各个类别的累积分数并检查缓存是否命中。如果缓存命中,推理过程提前终止并返回缓存结果。
CoCa相较于现有的基于缓存的方法具有显著优势。CoCa中的多客户端协作缓存机制通过全局缓存更新和自适应客户端缓存分配,有效解决了non-IID和长尾分布的挑战。然而,实现高效推理仍然存在两个主要问题: (1) 模型中激活的缓存层的数目和位置会显著影响缓存查询的成本和效果。缓存层过少会降低缓存命中率和加速的机会,而过多则会增加平均推理时延。因此,为了平衡准确性和查询开销,激活模型中合适的缓存层(即本地缓存中的列)非常关键。 (2) 我们观察到在不同情景下热点类的数目存在明显差异。在少量类别的样本频繁出现的场景中,使用固定的大容量缓存可能因查询耗时而稀释缓存命中产生的优势。相反,热点类数量超过缓存容量会导致缓存命中率下降甚至错误命中。因此,另一个挑战是,如何动态调整缓存条目(即本地缓存中的行)中的热点类数量,来提升推理准确性并减少推理时延。 本文主要贡献总结如下:
我们提出了一种高效框架CoCa,该框架通过多客户端协作缓存机制增强边缘推理。CoCa在服务器端执行全局缓存更新,并为每个客户端动态分配缓存条目,来应对non-IID和长尾分布挑战。 针对CoCa中的挑战,我们提出了一种高效的启发式缓存分配算法,能够根据每个客户端的数据分布和最近本地类别出现模式动态地选择合适的缓存层和热点类数目。 实验结果表明,CoCa在VGG、ResNet和AST模型上的平均推理时延降低了23.01%到45.19%,且准确率损失小于3%。此外,与其他基线方法相比,CoCa在ResNet101模型上的时延降低达到16.67%到21.26%。
三、多客户端协同缓存机制CoCa
3.1 设计动机
基于多客户端缓存协同的可行性与优势,一个自然的问题是,我们如何构建合适的缓存协同机制。在一种通用的基于PS架构的多客户端框架下,我们通过一些前期验证实验,有几个主要的观察结果:
观察1:缓存大小的增加在初期会降低延迟,但过大的缓存反而会导致延迟增加。在语义缓存推理中,可以在模型的每个卷积层后设置缓存层,使模型内可包含多个缓存层。例如,在ResNet101中最多可以插入34个缓存层。这些缓存的大小相对较小;在UCF101任务中,总缓存大小约为3.2MB,占模型大小的1.95%。考虑到缓存的小体积和使用频率,传输时延对整体推理延迟的影响可以忽略。然而,缓存查找的计算开销却较为显著。根据我们的实验,全部34个缓存层的总查找延迟占无缓存情况下推理延迟的56.22%。使用缓存可以有效降低平均推理延迟,同时仅带来较低的精度损失。然而,较大的缓存大小并不一定能改善性能,因为会增加查找时间。因此,需要合理控制缓存大小,以在查找开销和缓存命中收益之间达到最佳平衡,从而实现最优性能。
观察2:不同的缓存层和热点类数量会对查找时间、命中率和准确性产生不同影响。多缓存层的模型推理可以提升整体缓存命中率,但会导致更长的缓存查找时间。同样,增加热点类数量也会提高缓存命中率,但同时延长查找时间。为了详细探讨这两个因素的影响,我们使用ResNet01模型和UCF101数据集进行了实验。首先,我们测量了在所有缓存层均激活时,单个缓存层命中后的命中率和准确性。如图1所示,命中率在浅层和深层缓存层中较高,而中间层较低。这是因为容易推理的样本更早命中,而在深层缓存层中,中间特征变得更加具有区分度,从而提高了命中率。而在浅层缓存层,特征的可判别性不足,而深层缓存层中命中的主要是困难样本,因此准确性较低。浅层缓存层在延迟减少方面表现较好,而深层缓存层提供更高的准确性。因此,这些观察结果强调了选择合适的缓存层来优化延迟和准确性之间权衡的必要性。 其次,我们测试了缓存中热点类别数对推理性能的影响。随着热点类别数增加,延迟和准确性最初同时提高。当热点类别数量超过一定阈值后,准确性趋于稳定,但延迟开始增加,削弱了缓存的延迟减少收益。这种趋势反映了缓存命中率和查找时间之间的权衡。综上所述,合理选择缓存层和热点类别数对于优化缓存效率和确保推理结果的准确性至关重要。
观察3:多客户端协作的全局更新对缓存准确性有积极影响。在语义缓存机制中,每个缓存层中每个类别的缓存条目(即低维语义中心)对于缓存查找至关重要。缓存命中和推理结果取决于输入的中间语义向量与缓存条目之间的相似性,而缓存命中的准确性则取决于缓存条目的表示能力。 此外,客户端数据通常具有非独立同分布(non-IID)的特性,例如来自交通路口和宠物店摄像头的图像数据可能存在差异。在某些任务中,多个客户端的数据存在空间相似性。受联邦学习的启发,我们定期将不同客户端的语义向量聚合到全局缓存表中,以利用这些多样化的数据集。通过收集客户端的推理样本,并使用它们在每层缓存中计算的语义向量更新全局缓存表。全局更新通过新语义向量(由各客户端生成)与全局缓存表中相应类别和层的条目进行加权求和来完成。此过程将来自不同客户端的多样化语义信息纳入全局缓存,增强了其表示能力。全局缓存可以使缓存的语义中心与当前数据特征更紧密对齐,对推理过程中的缓存查找命中率和准确性产生积极影响。
3.2 框架流程
CoCa的每个客户端工作流程如图2所示。服务器首先将预训练模型部署到每个客户端。然后,它按照轮次执行以下步骤。 (1) 在每轮开始时,每个客户端都会将其状态信息上传到服务器,包括当前数据类分布和时间戳向量。然后服务器根据全局共性信息和客户端的状态信息为每个客户端分配适当的缓存。 (2) 随后,客户端加载接收到的缓存并对一组帧进行本地推理。在此过程中,它收集客户端状态信息和推理样本的语义向量。 (3) 在本轮结束时,每个客户端将本轮收集的信息上传到服务器以进行全局更新。这些更新包括刷新全局缓存表和类频率信息。此后,系统为下一轮做准备。
阶段1:缓存分配
对于客户端的缓存分配请求,服务器根据收集到的客户端状态信息(例如本地时间戳向量)和保存在服务器上的全局状态信息,从全局缓存中分配合适的缓存条目。 简单来说,服务器收到客户端的缓存请求和状态信息后,通过两步过程分配适当的缓存。首先,服务器根据客户端和全局数据状态信息,选择最有可能出现的类,形成热点类集。其次,服务器按照预期收益(例如预期延迟减少)从高到低的顺序选择缓存层,并用热点类集中的相应缓存条目填充这些层,直到分配的缓存大小接近客户端的缓存大小阈值。至此,服务器成功为客户端完成缓存分配。
阶段2:本地推理与客户端信息收集
在阶段2中,客户端对客户端状态信息进行本地收集,并在本地推理过程中收集推理样本的语义向量。 客户端初始化两个一维向量来跟踪数据类的最近出现状态:时间戳向量 和本地类频率向量 。 具体来说,我们使用(的第个元素)来表示自上次出现第类样本以来的推理次数。每次推理过程结束后,当前样本类的时间戳重置为零,而其他类的时间戳加一。 我们使用(的第个元素)来记录类的样本在当前轮中出现的次数。 这些向量使客户端能够维护最近各类样本出现的动态记录。 在本地推理过程中,客户端维护状态信息并收集缓存更新表来进行全局更新。 缓存更新表与服务器上的全局缓存表具有相同的维度。 客户端根据以下策略决定是否从当前推理过程中收集信息来填充。 具体来说,将选择两种类型的推理样本:
缓存命中且判别得分 (命中缓存层 )超过阈值 的样本。 这些样本表现出与当前缓存类似的特征,可用于强化它,从而捕获类语义随时间的逐渐演变。收集的语义向量仅限于缓存命中点之前。
缓存未命中的样本但其类别的归一化概率向量 满足以下条件:两个最大概率之间的差值,即 ,大于阈值。这些样本在分类结果中显示出高置信度,但可能无法被当前缓存充分捕获,可以作为全局缓存的补充。
这两类样本分别代表当前缓存条目的加固和扩展。增强和扩展之间的平衡可以通过调整两个阈值和来调整。 现在,我们将描述收集语义向量的方法。 对于第类所选的推理样本,其在层的语义向量表示为,缓存更新表中对应的缓存条目表示为。 条目 首先更新如下:
其中是衰减系数(默认设置为0.95),它削弱较旧的推理样本的影响。然后, 被归一化为单位 L2 范数。
阶段3:全局更新
全局更新主要涉及更新全局缓存表和类频率信息。对于全局缓存更新,全局缓存表和客户端上传的缓存更新表具有相同的二维逻辑结构。 在 CoCa 中,全局缓存表是通过本地缓存更新表和全局缓存表中相应条目的逐元素加权求和来更新的,权重基于本地和全局类频率。 对于客户端,我们将类和缓存层的本地缓存更新表中的条目表示为,并将全局缓存中的条目表示为 。 对应于局部类频率向量,全局类频率向量表示为。 对于来自客户端的更新信息,全局缓存条目更新方式如下:
其中和分别表示第类样本的全局总频率和本地频率。 参数为衰减系数。我们使用条目的频率来评估更新条目的重要性并执行加权平均。 更新后, 被归一化为单位 L2 范数。 通过将客户端 的本地类频率向量 与全局类频率向量 简单求和来进行更新。从数学上讲,每个类 的频率更新公式为:
上面概述的过程描述了服务器如何实现全局缓存和状态信息的更新。
为了说明我们提出的框架 CoCa,我们使用图3中描述的示例进行简单解释。 服务器维护一个的二维全局缓存表。五行代表任务的五种分类类别,五列对应模型中预先设置的五个缓存出口层。 考虑缓存大小阈值为 10 个条目的场景, 客户端 1 中的最新数据流主要集中在四个热点类上,与其他类的不频繁出现相比,这些类具有更近的时间戳和更高的频率。 服务器收到客户端1的状态信息和缓存请求后,为每个缓存层分配4个条目。 然后,服务器使用贪心算法顺序选择使贡献最大化的缓存层。 结果,服务器可以向客户端提供第一和第三缓存层,每个缓存层填充有与热点类相对应的四个条目。 当Client的热点类的数量为3时,服务器会选择3层缓存(如第一层、第三层、第四层)进行适配,每层包含三个条目。 这种方法动态地适应客户端不断变化的数据模式。随着客户端数据状态的不断变化,服务器在每轮中自适应地分配合适的缓存。 在 CoCa 中,每个客户端仅与服务器通信,从而无需在客户端之间直接同步进行缓存更新和分配。 通过服务器的全局缓存更新机制可以促进跨客户端的信息共享。
四、算法设计
4.1 问题定义
我们的目标是为每个参与客户端 选择合适的缓存分配策略,以实现客户端平均推理时延的降低。基于该目标,我们首先对我们的优化问题进行形式化定义。 在分配本地缓存时,CoCa 为每个客户端分配适当的缓存条目,以减少所有客户端的平均推理延迟。假设每个客户端 有 个样本,则全局平均推理延迟 可以定义为:
其中是所有客户端的参数集,定义为:。 这里,表示客户端的参数集。 我们将客户端 的样本数量和平均推理延迟分别表示为 和 。 相应地,当每个客户端的样本数一致时,我们可以将优化问题简化如下:
第一组不等式表示每个客户端的缓存大小约束,其中 是为客户端 规定的缓存大小阈值。 第二组不等式表示每个客户端的推理精度损失约束,其中 是为客户端 确定的精度损失阈值。 第三组约束将 定义为二元变量,其中 对于所有 都成立。表示将全局缓存表的行列中的缓存条目分配给客户端,0表示相反。 优化问题的目标是最小化所有客户端的平均推理延迟。
4.2 算法描述
假设模型架构包含 个缓存层。在做出缓存条目分配决策时,服务器利用全局类频率向量 和从客户端 上传的本地类时间戳向量 。和分别表示每个向量中类的值。全局类别频率向量记录了推理样本中各个类别的出现频率,反映了各个类别出现频率的差异。本地类时间戳向量记录了当前每个类在客户端未出现过的连续推理样本的数量,表示每个类的新近度。每次推理后,当 类的样本出现时, 重置为零,否则加一。 参数代表客户端缓存的更新周期。每隔 次推理,客户端都会向服务器重新发起缓存条目分配请求。客户端还会上传一个缓存大小约束阈值来指导缓存条目的分配。 服务器还接收客户端上传的缓存命中率向量和节省的推理时间向量。两个向量的长度均为 。缓存命中率向量记录每个缓存层的命中率,节省的推理时间向量记录每个缓存层发生缓存命中时保存的推理时间(考虑仅模型计算时间)。组合这两个向量的内容有助于衡量不同缓存层的重要性,从而有助于在缓存条目分配期间保留更关键的缓存条目。
考虑到类别频率向量和类别时间戳向量可以代表每个类别的频率和新近度,我们使用这两个向量来估计每个类别未来再次出现的概率。具体来说,我们使用以下公式计算客户端 的类 的分数 :
其中表示类的全局频率,而表示类在客户端上的时间戳。我们使用 表示局部推理轮中的推理次数。分数较高的类别再次发生的概率较高。然后,我们根据这些分数对类别进行排名,并选择前 类别的子集。遵循SMTM的原则,我们选择分数总和达到总分95%的子集作为缓存的热点类。这确保了属于所选类别的未来推理样本的类别出现在缓存中的高概率。 除了追求高缓存命中率和准确率外,我们还致力于提高缓存效率,避免过多的查找时间。 因此,有必要评估不同缓存层的重要性并选择最重要和最有效的缓存层。向量和反映了每个缓存层的预期命中率以及缓存命中所节省的推理时间(仅考虑模型计算时间)。 我们使用这两个向量的点积 来估计每个缓存层当前预期的延迟减少效益。 具体来说,我们迭代地选择具有最高预期收益的缓存层,然后重新计算剩余缓存层的预期命中率和命中收益,直到分配的缓存大小接近约束阈值。这种方法保证了缓存查找带来的开销保持在合理的范围内。
基于上述设计,我们提出了两阶段缓存条目分配算法ACA。 ACA的输入包括全局类频率向量、本地类时间戳向量、预期缓存命中率向量 、保存的推理时间向量 以及缓存大小约束阈值 。输出是缓存条目分配指示矩阵。 ACA分为两个阶段:
在第一阶段,ACA 根据频率和新近度计算缓存中每个类的重要性分数,然后按降序对它们进行排序。然后,选择占总分95%的类作为热点类,形成集合。
在第二阶段,ACA评估缓存层的重要性,并迭代选择具有最高预期收益的层,确保缓存大小不超过阈值。 ACA 通过预期命中率与节省的推理时间的乘积来衡量每个缓存层的重要性,然后选择效益最高的层。 最后,ACA 返回缓存条目分配指示矩阵作为输出。
五、性能评估
5.1 实验设置
我们在 3 种数据集上进行了大量的实验,包括 UCF101[5],ImageNet-100[6],以及 ESC-50[7]。我们将 CoCa 与以下 4 个基线进行性能对比,以验证所提出方案的高效性:
Edge-Only 表示传统的边缘推理方法,其中客户端仅在其设备上执行推理。该基线有助于在无需额外加速技术的情况下建立标准性能指标,为评估先进方法的有效性提供参考。
LearnedCache [2] 旨在通过在模型中设置多个中间出口来确保稳定的内存使用和一致的时间消耗。它允许样本提前退出以节省推理时间。是否提前退出的决定由每个出口处的单独小模型决定。我们引入此基线来比较基于模型的多出口策略与缓存增强方法的性能。
FoggyCache [4] 展示了客户端-服务器框架在利用缓存进行推理加速方面的潜力。与语义缓存机制不同,FoggyCache使用改进的A-LSH算法来组织缓存对象,并在推理前使用H-kNN进行缓存查找。它强调了服务器辅助缓存在减少推理延迟方面的有效性。该基线作为多客户端场景中不同单出口缓存框架的比较对象。
SMTM [3] 使用语义缓存机制实现多出口推理加速。它通过压缩缓存条目表示来减少缓存空间占用。我们将其应用扩展到多个客户端,作为多客户端场景中多出口缓存的基准。
5.2 实验结果
如图4所示,与基线方案相比,CoCa 在非独立同分布条件下有更好的表现效果。 没有使用缓存的方法在不同的 non-IID 水平上显示出稳定的延迟。相比之下,随着 non-IID 水平的增加,基于缓存的方法表现出延迟的减少。 CoCa 在两种模型的平均推理延迟随着 non-IID 水平的增加而持续降低。在最高 non-IID 水平()下,ResNet101 的平均延迟比 IID 情况降低了 9.08 %。 CoCa 在不同模型和 non-IID 水平的延迟减少方面始终优于其他基线。对于 AST,与 Edge-Only 相比,CoCa 的延迟降低了 29.02% 到 33.17%,与 SMTM 相比延迟降低了 12.19% 到 15.43%。 随着非 IID 级别的增加,时间局部性变得更加明显,从而增强了基于缓存的方法的有效性。 CoCa 的优越性能主要归功于全局更新,提高了缓存命中率和推理准确性。 总之,与其他加速基线相比,CoCa 显著降低了平均推理延迟,同时保持了更高的推理精度,证明了其稳健性和有效性,尤其是对于高度非独立同分布的数据分布。
如图5所示,为了证明 ACA 算法的有效性,我们将其与几种经典的缓存替换算法(包括 LRU、FIFO 和 RAND)进行了比较。具体来说,LRU为每个缓存条目分配一个计数器来跟踪它有多久没有被访问,并在替换过程中用最大的计数器值替换该条目。 FIFO 在缓存满时替换最早加载的缓存条目,而 RAND 在缓存达到其容量时随机选择一个条目进行替换。 对于基线算法,我们选择一组具有高预期效益的固定缓存层作为本地缓存。我们将缓存大小定义为每个缓存层可以容纳的最大条目数。 为了确保公平比较,ACA 被限制使用与基线算法相同的总内存大小的缓存。 具体来说,我们使用 3% 精度损失约束下的平均延迟指标作为示例,ACA表现出更好的性能。
为了研究 CoCa 的两个主要组件,即动态缓存分配(DCA)和全局缓存更新(GCU)对平均推理延迟和准确性的具体影响,我们进行了以下消融实验。与固定缓存配置相比,DCA 在推理过程中动态调整缓存层和热点类的数量。 GCU 在整个推理过程中更新全局缓存表,而不是使用静态全局缓存。 我们比较了四种方法的性能:Normal(标准)、DCA(仅动态缓存分配)、GCU(仅全局缓存更新)和 DCA+GCU(同时使用两个组件)。 如图6和图7所示,与单独使用任一改进(DCA 或 GCU)相比,同时采用这两种改进(即 DCA+GCU)在平均推理延迟和准确性方面可产生卓越的性能。 与 GCU 相比,DCA 可以在所有四种模型中实现更显着的延迟减少。 例如,我们使用 Normal 作为基线,比较不同方法在 ResNet152 上的性能。结果表明,GCU 实现了 6.60% 的延迟降低。相比之下,DCA 表现出卓越的性能,延迟显着降低了 39.18%。 在精度性能方面,与 DCA 相比,GCU 在所有四个模型中都表现出相对较低的精度损失。对于ResNet101,DCA相对于Normal的精度损失为2.01%,而GCU实现的精度损失仅为1.49%,降低了0.52%,接近相对25%。 两个组件(即 DCA+GCU)的组合可实现最佳的精度性能。这可能是由于组合效应所致,其中 GCU 增强了 DCA 缓存条目的代表性,而 DCA 提供了更好的缓存管理以避免冗余缓存条目的过度干扰。
六、结论
在本文中,我们提出了一种高效的推理框架CoCa,它采用多客户端协作缓存机制来加速边缘推理。 具体来说,CoCa 利用了两个核心机制,即动态缓存分配和全局缓存更新, 我们分别使用三个经典数据集和五个不同模型来评估 CoCa 的推理性能。 大量实验表明,CoCa 将推理延迟降低了 23.01% 至 45.19%,同时精度损失轻微 ( 3%)。 此外,与其他加速基线相比,CoCa 在 ResNet101 上实现了 16.67% 到 21.26% 的延迟减少。 这些实验结果证实了 CoCa 的有效性和效率。
七、参考文献
[1] Perrett T, Sinha S, Burghardt T, et al. Use your head: Improving long-tail video recognition[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2023: 2415-2425.
[2] Balasubramanian A, Kumar A, Liu Y, et al. Accelerating deep learning inference via learned caches[J]. arXiv preprint arXiv:2101.07344, 2021.
[3] Li Y, Zhang C, Han S, et al. Boosting mobile CNN inference through semantic memory[C]//Proceedings of the 29th ACM International Conference on Multimedia. 2021: 2362-2371.
[4] Guo P, Hu B, Li R, et al. Foggycache: Cross-device approximate computation reuse[C]//Proceedings of the 24th annual international conference on mobile computing and networking. 2018: 19-34.
[5] Ramesh M, Mahesh K. Sports video classification with deep convolution neural network: a test on UCF101 dataset[J]. International Journal of Engineering and Advanced Technology, 2019, 8(4S2): 2249-8958.
[6] Deng J, Dong W, Socher R, et al. Imagenet: A large-scale hierarchical image database[C]//2009 IEEE conference on computer vision and pattern recognition. Ieee, 2009: 248-255.
[7] Piczak K J. ESC: Dataset for environmental sound classification[C]//Proceedings of the 23rd ACM international conference on Multimedia. 2015: 1015-1018.