【大模型服务】01EdgeFM: Leveraging Foundation Model for Open-set Learning on the Edge

该文发表在 SenSys’23(CCF B) 上,作者是来自港中文的鄢振宇。这是一篇关于云端协同的文章,主要解决边缘设备深度模型的泛化性不足问题,实现 Open-set Learning。

文章目录

  • 背景
  • Open-Set Recognition 的挑战
  • EdgeFM 整体架构图
    • 云端:Knowledge Query and Customization
      • Heterogeneous Feature Mapping
      • Knowledge Query from the Foundation Model
      • Semantic-driven Distillation Loss
    • 边缘端:Dynamic Edge Update
    • 推理侧:EdgeFM Inference Engine
      • 选取最佳阈值
  • 系统评估
  • 评价

背景

随着深度学习以及芯片的发展,越来越多的深度模型选择在边缘端部署。由于边缘设备资源有限(无论是内存资源,还是计算资源),并不能发挥出模型 100% 的能力。当前大多数边缘 AI 模型都是基于特定任务的,仅仅识别训练中出现的类别,对于未知类别的输入数据,模型的精度会大幅降低。

而大模型并不会出现这种问题。如图一所示,大模型具有零样本学习能力,对于未知类别的输入,也会很好地完成分类。而且大模型可以处理多个不同下游任务,比如我们可以只使用 GPT-4 就可以完成中英文翻译、知识问答、作诗等多种不同任务。

在这里插入图片描述

当前工作都是基于闭集识别(仅可识别训练中出现的类)的研究,对于 Open-set Recognition 方面,并没有人涉及到。

Open-Set Recognition 的挑战

  • 资源有限
    一旦涉及到边缘设备,资源问题永远是一大痛点,对于大模型更是如此。我们不可能直接在边缘端直接应用大模型(FMs),那如何利用大模型增强边缘 AI 模型的泛化性成为一个比较大的挑战。
  • 在动态环境中保持泛化性
    真实环境并不是静态的,网络带宽变化、场景突变都有可能发生。这更加考验系统的鲁棒性。
  • 实时性
    多数任务都有实时性要求,不可能前朝事今朝判。

EdgeFM 整体架构图

这个系统包括两个主要功能:选择式上传未知数据以及为边缘端定制专有小模型。

  • Edge 端收集 Applications(任务、精度和时延)和 Resources (内存,计算资源)数据并进行分析。Model Selection使用该分析结果在 Model Pool 中选取最合适的模型架构。之后该模型架构结合边缘端上传的未知数据进行语义定制。最后把定制好了的小模型部署在 Edge 端。
  • 未知数据通过定制小模型生成 Sensor embeding数据,之后进行不确定性量化,最后根据不确定性量化结果决定是否上传 Cloud 端。
  • 在推理过程中,Inference Engine 采用 Dynamic Network Apaptation 来检测网络状况并更新阈值搜索表(该表用来查询最优阈值的)。同时,Inference Engine会根据网络带宽和不确定性度量来决定是否在本地运行。

在这里插入图片描述

云端:Knowledge Query and Customization

我将重点讲解 Semantic-driven Customization 的做法,其他部分不详细讲述(比较简单QAQ)

Heterogeneous Feature Mapping

由于边缘 AI 模型和大模型的架构不同,所产生的embedding数据维度也有可能不同。为了小模型可以更简单学习到大模型的知识,因此使用投影网络使得二者embeding维度相同:
v i = ψ ( S ( x i ) ) \mathbf{v}_{i}=\psi\left(\mathcal{S}\left(\mathbf{x}_{i}\right)\right) vi=ψ(S(xi))

在这里插入图片描述

Knowledge Query from the Foundation Model

这一 part 解决对未知类别样本进行分类问题。中心思想也很简单就是在文本池中选取置信度最高的文本作为该数据标签。
t i ′ = argmax ⁡ ( ⟨ T v ( x i ) , t k ⟩ ) , t k ∈ T \mathbf{t}_{i}^{\prime}=\operatorname{argmax}\left(\left\langle\mathcal{T}_{v}\left(\mathbf{x}_{i}\right), \mathbf{t}_{k}\right\rangle\right), \mathbf{t}_{k} \in \mathbf{T} ti=argmax(Tv(xi),tk),tkT

Semantic-driven Distillation Loss

大模型的泛化能力很强,因此小模型要学习大模型的输出,尽量达到大模型效果。在这里,本文采用的是双向对比学习方式进行学习。

LOSS:

  • 从文本到图像:
    L i v → t ′ = − l o g e x p { < Ψ i , t ^ k > / τ } ∑ k = 1 b S e x p { < < Ψ i , t ^ k > / τ } \mathcal{L}_{i}^{v\rightarrow t^{\prime}}=-l o g\frac{e x p\ \left\{\left<\Psi_{i},\hat{\bf t}_{k}\right>/{\tau}\right\}}{\sum_{k=1}^{b_{S}}e x p\ \mathrm{\left\{\left<\left<\Psi_{i},\hat{\bf t}_{k}\right>\right./{\tau}\right\}}} Livt=logk=1bSexp {Ψi,t^k/τ}exp {Ψi,t^k/τ}

  • 从图像到文本:

L i t ′ → v = − l o g e x p { < t ^ i , v k > / τ } ∑ k = 1 b S e x p { < < t ^ i , v k > / τ } \mathcal{L}_{i}^{t^{\prime}\rightarrow v}=-l o g\frac{e x p\ \big\{\left<\hat{\bf t}_{i},\mathbf{v}_{k}\right>\big/\tau\big\}}{\sum_{k=1}^{b_{S}}e x p\ \mathrm{\left\{\left<\left<\hat{t}_{i},\mathbf{v}_{k}\right>\right.\big/\tau\right\}}} Litv=logk=1bSexp {t^i,vk/τ}exp {t^i,vk/τ}

  • 交叉熵loss
    L t e x t = 1 b s ∑ i = 1 b s w i { λ L i v → t ′ + ( 1 − λ ) L i t ′ → v } \mathcal{L}_{t e x t}=\frac{1}{b s}\sum_{i=1}^{b s}w_{i}\left\{\lambda\mathcal{L}_{i}^{v\to t^{\prime}}+(1-\lambda)\mathcal{L}_{i}^{t^{\prime}\to v}\right\} Ltext=bs1i=1bswi{λLivt+(1λ)Litv}

    其中 w i w_i wi 表示预测置信度,代表未知类别输入成功预测几率有多大(注意置信度有可能大于1)。bs表示 batch 大小。

边缘端:Dynamic Edge Update

前面提到:未知数据会有选择地上传云端。下面我们来探讨一下如何选择未知数据到云端。

对于一个样本来说,如果对于某一类别标签的置信度非常高,而对于其他类别标签的置信度很低,那这个样本还用上传云端吗?显然不用,该样本预测正确的概率极大。因此,我们得到一个经验结论:只要第一置信度很高,其他类别置信度很低,那用边缘小模型处理该样本最优。在这里,我们用余弦相似度来表示置信度:
s i m ( x i ) = ⟨ V i , t k ⟩ sim({\bf x}_{i})\;{{{=}}}\;\langle\mathrm{V}_{i},\mathrm{t}_{k}\rangle sim(xi)=Vi,tk

不确定性度量,这里用第一置信度与第二置信度的差值表示:
U n c ( x i ) = s i m 1 ( x i ) − s i m 2 ( x i ) U n c({\bf x}_{i})\,=\,s i m_{1}({\bf x}_{i})-s i m_{2}({\bf x}_{i}) Unc(xi)=sim1(xi)sim2(xi)

当 Unc 小于阈值时,代表本地模型无法进行可靠分类,因此发送到云端进行处理。反之,使用本地模型进行处理。
U n c ( x i ) < V t h r e U n c({\bf x}_{i})\,<\,V_{t h r e} Unc(xi)<Vthre

推理侧:EdgeFM Inference Engine

在推理过程中,EdgeFM会自适应性选择最合适的运行方式(cloud or edge)。EdgeFM 还是基于置信度作为衡量指标。(置信度这么好用????)

和上面相同,Unc小于阈值时上传云端,大于阈值时在本地执行。

r ( x i ) = { U n c ( x i ) ≥ t h r e ( t ) } r({\bf x_i}) = \{Unc({\bf x_i}) \ge thre(t)\} r(xi)={Unc(xi)thre(t)}

从上面这个公式可以看出, t h r e ( t ) thre(t) thre(t) 的取值直接影响 EdgeFM 的决策。因此我们需要动态调整阈值大小,确保 EdgeFM 做出正确决策。

选取最佳阈值

  • 定义系统时延公式:
    t ^ e 2 e ( t h r e ) = r ( t h r e ) ⋅ t e d g e + ( 1 − r ( t h r e ) ) ⋅ ( t t r a n s + t c l o u d ) \hat{t}_{e2e}(t h r e)=r(t h r e)\cdot t_{e d g e}+(1-r(t h r e))\cdot(t_{t r a n s}+t_{c l o u d}) t^e2e(thre)=r(thre)tedge+(1r(thre))(ttrans+tcloud)

  • 在满足时延要求的情况下,thre 越大越好:
    max ⁡ t h r e ∈ ( 0 , 1 ) t h r e s . t . t ^ e 2 e ( t h r e ) ≤ L a p p \operatorname*{max}_{t h r e\in(0,1)}\ t h r e\quad\mathrm{s.t.}\quad\hat{t}_{e2e}(t h r e)\le L_{a p p} thre(0,1)max thres.t.t^e2e(thre)Lapp

系统评估

  • 系统具有泛化性
    在这里插入图片描述

  • 在不降低精度的情况下,时延大幅降低(实时性)
    在这里插入图片描述

评价

ing…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

21---EEPROM电路设计

视频链接 EEPROM电路设计01_哔哩哔哩_bilibili EEPROM电路设计 1、存储器的分类 一般根据掉电丢失来划分的存储器。可分为易失性存储器和非易失性储存器。 ROM在系统停止供电的时候仍然可以保持数据&#xff0c;而RAM通常都是在掉电之后就丢失数据。 1.1、易失性存储器-R…

升级 HarmonyOS 4 版本,腕上智慧更进一步

HUAWEI WATCH GT 3 系列升级 HarmonyOS 4 新版本后&#xff0c;手表体验更进一步&#xff0c;快来看看有哪些变化吧~

如何进行端口映射端口转发?

在互联网时代&#xff0c;网络安全成为一项重要的任务。端口映射端口转发是一种常用的网络安全技术&#xff0c;它可以实现远程访问内部网络资源的需求。本文将介绍端口映射端口转发的基本原理和应用场景&#xff0c;以及一种名为"天联"的解决方案。 基本原理 端口映…

种植新革命:科技赋能绿色未来

《种植新革命&#xff1a;科技赋能绿色未来》 一、种植技术的颠覆式创新 随着科技的飞速发展&#xff0c;种植技术也在经历一场颠覆式的创新。传统的种植方式&#xff0c;虽然历史悠久&#xff0c;经验丰富&#xff0c;但在面对现代化、大规模、高效的需求时&#xff0c;逐渐…

LeetCode每日一题——最后一个单词的长度

最后一个单词的长度OJ链接&#xff1a;58. 最后一个单词的长度 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路 &#xff1a; 统计字符串中最后一个单词的长度&#xff0c;那么我们可以定一一个指针&#xff0c;从后向前开始统计&#xff0c;当指针指向的元素…

【LabVIEW FPGA入门】局部变量和全局变量

局部变量 无法访问某前面板对象或需要在程序框图节点之间传递数据时&#xff0c;可创建前面板对象的局部变量。创建局部变量后&#xff0c;局部变量仅仅出现在程序框图上&#xff0c;而不在前面板上。 局部变量可对前面板上的输入控件或显示件进行数据读写。写入局部变量相当于…

流畅的 Python 第二版(GPT 重译)(十三)

第二十四章&#xff1a;类元编程 每个人都知道调试比一开始编写程序要困难两倍。所以如果你在编写时尽可能聪明&#xff0c;那么你将如何调试呢&#xff1f; Brian W. Kernighan 和 P. J. Plauger&#xff0c;《编程风格的要素》 类元编程是在运行时创建或自定义类的艺术。在 P…

局域网内怎么控制另一台电脑

局域网内怎么控制另一台电脑 在局域网内控制另一台电脑是一个相对高级的操作&#xff0c;通常用于远程管理、技术支持或资源共享等场景。要实现这一功能&#xff0c;需要确保两台电脑都连接到同一个局域网&#xff0c;并且已进行适当的配置。以下是几种常见的方法&#xff1a;…

【蓝桥杯选拔赛真题42】C++切蛋糕 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解析

目录 C切蛋糕 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C切蛋糕 第十四届蓝桥杯青少年创意编程大赛C选拔赛真题 一、题目要求 1、编程实现 有一块矩形蛋糕&#xff0c;小明从蛋糕…

GCN-Align论文翻译

GCN-Align翻译 Cross-lingual Knowledge Graph Alignment via Graph Convolutional Networks 基于图卷积网络的跨语言知识图谱对齐 Abstract 多语言知识图&#xff08;KGs&#xff09;&#xff0c;如DBpedia和YAGO&#xff0c;包含几种不同语言的实体结构化知识&#xff0c…

墨菲安全在软件供应链安全领域阶段性总结及思考

向外看&#xff1a;墨菲安全在软件供应链安全领域的一些洞察、思考、行动 洞察 现状&挑战&#xff1a; 过去开发安全体系是无法解决软件供应链安全问题的&#xff1b;一些过去专注开发安全领域的厂商正在错误的引导行业用开发安全思维解决软件供应链安全问题&#xff0c;治…

SpringCloud中的@EnableDiscoceryClient和@EnableFeignClients注解的作用解析、RPC远程过程调用

目录 EnableDiscoveryClient 服务发现的核心概念 服务注册中心 EnableDiscoveryClient注解的作用 服务心跳健康检查 使用示例 EnableFeignClients Feign简介 EnableFeignClients注解的作用 RPC&#xff08;Remote Procedure Call&#xff09; 参考链接 Spring Cloud…

javaScript——BFS结合队列求迷宫最短路径

这里推荐先去看下B站这个老师讲的BFS迷宫问题&#xff0c;只用看前五分钟就能懂用BFS队列实现的原理。[POJ] 3984 迷宫问题 BFS_哔哩哔哩_bilibili 问题描述&#xff1a;由m*n的矩阵构成了一个迷宫&#xff0c; 矩阵中为1的元素表示障碍物&#xff0c;不能走&#xff0c;为0表示…

如何在职场中提升自己的竞争力

随着社会的发展&#xff0c;职场竞争日益激烈。如何在职场中提升自己的竞争力&#xff0c;成为许多职场人士关注的焦点。本文将从以下几个方面为大家提供一些建议。 一、不断学习&#xff0c;提升专业技能 在职场中&#xff0c;专业技能是衡量一个人竞争力的重要标准。要想在职…

让数据在两个buckets之间传输 - Google Storage Transfer Service

在业务场景中&#xff0c; 有时我们不想直接暴露数据存储空间给上游系统&#xff0c; 而需要设置1个landing Path 让上游系统发送数据 如图&#xff1a; 我们只需grant landing bucket 的权限给上游系统&#xff0c; 而上游系统是访问不了storage bucket的保证了数据隔离 但是…

这个小技巧真不错!

大家好&#xff0c;我是前端队长。前端程序员&#xff0c;2023年开始玩副业。玩过AI绘画&#xff0c;公众号爆文项目&#xff0c;累计变现五位数。 今天看到萌萌在陪伴群分享了我公众号次图封面显示不全的问题。 这里我分享设计师萌萌的方法&#xff0c;很简单&#xff0c;但是…

为什么HubSpot可以干翻营销和销售副总裁?

本文纯属虚构&#xff0c;作为销售的人&#xff0c;看完惊出一身大汗绝对属于正常。建议您先准备一个大毛巾&#xff0c;等下看完肯定会出汗的。还有&#xff0c;别忘记睡前给自己倒满一杯红酒&#x1f377;&#xff0c;今晚会失眠的呢。 1. 为什么是Hubspot&#xff1f; 2. H…

金融知识分享系列之:KD指标

金融知识分享系列之&#xff1a;KD指标 一、KD指标二、KD指标计算三、KD指标原理四、KD指标应用 一、KD指标 KD信号提供入场的工具 名称&#xff1a;随机震荡指标参数&#xff1a;&#xff08;9,3,3&#xff09;组成&#xff1a;K线&#xff0c;D线&#xff0c;20轴&#xff0…

【Linux】传输层协议:TCP/UDP

目录 netstat pidof UDP协议 TCP协议 TCP协议段格式 TCP协议的相关机制 确认应答&#xff08;ACK&#xff09;机制 超时重传机制 连接管理机制 服务端状态转换 客户端状态转化 流量控制 流量控制常见问题&#xff1a; 滑动窗口 拥塞控制 延迟应答 面向字节流…

流畅的 Python 第二版(GPT 重译)(九)

第四部分&#xff1a;控制流 第十七章&#xff1a;迭代器、生成器和经典协程 当我在我的程序中看到模式时&#xff0c;我认为这是一个麻烦的迹象。程序的形状应该只反映它需要解决的问题。代码中的任何其他规律性对我来说都是一个迹象&#xff0c;至少对我来说&#xff0c;这表…