Provisioning Edge Inference as a Service via Online Learning 阅读笔记

news2025/7/27 12:55:02

通过在线学习提供边缘推理服务

一、论文研究背景、动机和主要贡献

研究背景

趋势:机器学习模型训练从中央云服务器逐步转移到边缘服务器

好处:

  • 与云相比:a.低延迟 b.保护用户隐私(数据不会上传到云)
  • 与on-device相比:克服设备电量、资源限制

研究动机

挑战:

  • 边缘推理需要对跨网络的机器学习模型进行管理
  • 云->边缘涉及准确性和资源消耗之间的权衡;且涉及决策耦合:当前所做的任何决策都有可能限制下一步所做的决策(资源需求是在线变化的)
  • 推断任务的到达是不可预测的,如何清除任务推断队列是具有挑战性的

主要贡献

研究了在异构、资源受限的分布式边缘基础设施上在线优化机器学习服务的整体推理精度问题,同时适应不可预测的推理工作量

  • 将问题建模为一个带有长期约束的时变非线性整数规划:
    整数规划 { 问题目标:最大化整体推理精度 问题约束 { 队列状态转换 机器学习模型选择和交付 推理工作负载分布 整数规划\begin{cases}问题目标:最大化整体推理精度 \\问题约束\begin{cases}队列状态转换\\机器学习模型选择和交付\\推理工作负载分布\end{cases}\end{cases} 整数规划 问题目标:最大化整体推理精度问题约束 队列状态转换机器学习模型选择和交付推理工作负载分布
    决策存在滞后性:只有决策了,才知道是否满足约束。

    方案:选择设计在线算法,优化目标和上限累积,长期约束违反随时间的推移。

  • 我们设计了多项式时间在线算法

    该算法由一个在线学习组件一个随机舍入组件组成,该组件在每个时隙中进行分数阶决策,而不观察当前输入,并将分数阶决策转换为整数,而不改变期望中的约束违反

    • 在线学习组件:凸凹等效公式,采用以前的输入而非当前的输入。
    • 随机舍入组件:将分数决策舍入为整数,同时让两个分数相互补偿,并保持随机整数的期望等于相应的分数。
  • 性能:只会对最优性损失产生次线性动态遗憾,而对长期约束违反则会产生次线性动态拟合【两个指标】

二、系统模型和问题公式化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sgHL920J-1678173510342)(%E9%80%9A%E8%BF%87%E5%9C%A8%E7%BA%BF%E5%AD%A6%E4%B9%A0%E6%8F%90%E4%BE%9B%E8%BE%B9%E7%BC%98%E6%8E%A8%E7%90%86%E6%9C%8D%E5%8A%A1.assets/image-20230305131629138.png)]

系统模型

边缘计算设备:一系列分布式异构边缘 N = { 1 , 2 , . . . , N } \mathcal{N}=\{1,2,...,N\} N={1,2,...,N},使用 c n c_n cn表示边缘的容量。

机器学习模型:M个机器学期模型 M = { 1 , 2 , . . . , M } \mathcal{M}=\{1,2,...,M\} M={1,2,...,M},预训练并存储在云中。

  • 模型m在t时刻的精度损失: a m , t a_{m,t} am,t
  • 模型资源需求: d m d_m dm
  • 模型大小: s m s_m sm
  • 模型m的推理能力: p m p_m pm

推断工作负荷处理:

  • 用户在t时刻提交到边缘N的推断数量: r n , t r_{n,t} rn,t
  • 先进先出队列长度: q n , t q_{n,t} qn,t
  • 迁移代价: b n , t b_{n,t} bn,t

控制变量:

  • 在t时刻,边缘n是否拥有模型m: z n , m , t = { 1 , 0 } z_{n,m,t}=\{1,0\} zn,m,t={1,0}
  • 在t时刻,边缘n上驻留的模型m的实例数量: x n , m , t x_{n,m,t} xn,m,t
  • 在t时刻,从边缘n迁移到边缘n’的用户查询数量: y n , n ′ , t y_{n,n',t} yn,n,t

问题公式化

问题目标:最小化整体的精度损失
∑ t = 1 T ∑ n ∑ m a m , t x n , m , t \sum_{t=1}^T\sum_n\sum_m a_{m,t}x_{n,m,t} t=1Tnmam,txn,m,t
问题约束:

  • 队列状态转换,保证队列长度非负
    ∀ t , n : q n , t + 1 = [ q n , t + ∑ n ′ y n ′ , n , t − ∑ m p m x n , m , t ] + q n , 1 ≥ 0 , q n , T + 1 = 0 \forall t,n:q_{n,t+1}=[q_{n,t}+\sum_{n'}y_{n',n,t}-\sum_mp_mx_{n,m,t}]^+\\ q_{n,1}\geq 0,q_{n,T+1}=0 t,n:qn,t+1=[qn,t+nyn,n,tmpmxn,m,t]+qn,10,qn,T+1=0

  • 推理工作负载分布
    ∀ t , n : ∑ n ′ y n , n ′ , t = r n , t \forall t,n:\sum_{n'}y_{n,n',t}=r_{n,t} t,n:nyn,n,t=rn,t

  • 迁移代价
    ∀ t , n : ∑ m s m [ z n , m , t − z n , m , t − 1 ] + + τ ∑ n ′ , n ′ ≠ n ( y n , n ′ , t + y n ′ , n , t ) ≤ b n , t \forall t,n:\sum_ms_m[z_{n,m,t}-z_{n,m,t-1}]^++\tau\sum_{n',n'\neq n}(y_{n,n',t}+y_{n',n,t})\leq b_{n,t} t,n:msm[zn,m,tzn,m,t1]++τn,n=n(yn,n,t+yn,n,t)bn,t
    下载模型+创建新的模型实例

  • 确保只有当模型决定驻留在边缘时,边缘才能有模型的实例
    ∀ t , n , m : d m x n , m , t ≤ z n , m , t c n \forall t,n,m:d_mx_{n,m,t}\leq z_{n,m,t}c_n t,n,m:dmxn,m,tzn,m,tcn

  • 确保用于处理推理查询的资源处于边缘容量之内
    ∀ t , n : ∑ m d m x n , m , t ≤ c n \forall t,n:\sum_md_mx_{n,m,t}\leq c_n t,n:mdmxn,m,tcn

  • 变量为整数
    ∀ t , n , n ′ , m : x n , m , t , y n , n ′ , t ∈ N , z n , m , t ∈ { 0 , 1 } \forall t,n,n',m:x_{n,m,t},y_{n,n',t}\in \N,z_{n,m,t}\in\{0,1\} t,n,n,m:xn,m,t,yn,n,tN,zn,m,t{0,1}

问题公式化:

问题:没有用户推理查询的先验知识,否则在知道这样的工作量之前,可在每个时间段动态地做出决策,同时仍然满足每个时间段的约束;

解决方式:选择只在长期内强制约束,并设计在线算法使目标最小化,并约束累积约束违反随时间的变化。
min ⁡ ∑ t = 1 T { ∑ n ∑ m a m , t x n , m , t }  s.t.  ∀ n : ∑ t = 1 T g t 0 , n ≤ 0 , ∀ n : ∑ t = 1 T g t 1 , n : = ∑ t = 1 T { ∑ n ′ y n , n ′ , t − r n , t } ≤ 0 , ∀ n : ∑ t = 1 T g t 2 , n : = ∑ t = 1 T { r n , t − ∑ n ′ y n , n ′ , t } ≤ 0 , ∀ n : ∑ t = 1 T g t 3 , n ≤ 0 , ∀ n , m : ∑ t = 1 T g t 4 , n , m ≤ 0 , ∀ t , n : h t n : = ∑ m d m x n , m , t − c n ≤ 0 ,  var.  ∀ t , n , m : x n , m , t , y n , n ′ , t ∈ N , z n , m , t l o a d ∈ { 0 , 1 } , \begin{aligned} \min & \sum_{t=1}^T\left\{\sum_n \sum_m a_{m, t} x_{n, m, t}\right\} \\ \text { s.t. } & \forall n: \sum_{t=1}^T g_t^{0, n} \leq 0, \\ & \forall n: \sum_{t=1}^T g_t^{1, n}:=\sum_{t=1}^T\left\{\sum_{n^{\prime}} y_{n, n^{\prime}, t}-r_{n, t}\right\} \leq 0, \\ & \forall n: \sum_{t=1}^T g_t^{2, n}:=\sum_{t=1}^T\left\{r_{n, t}-\sum_{n^{\prime}} y_{n, n^{\prime}, t}\right\} \leq 0, \\ & \forall n: \sum_{t=1}^T g_t^{3, n} \leq 0, \\ & \forall n, m: \sum_{t=1}^T g_t^{4, n, m} \leq 0, \\ & \forall t, n: h_t^n:=\sum_m d_m x_{n, m, t}-c_n \leq 0, \\ \text { var. } & \forall t, n, m: x_{n, m, t}, y_{n, n^{\prime}, t} \in \mathbb{N}, z_{n, m, t}^{l o a d} \in\{0,1\}, \end{aligned} min s.t.  var. t=1T{nmam,txn,m,t}n:t=1Tgt0,n0,n:t=1Tgt1,n:=t=1T{nyn,n,trn,t}0,n:t=1Tgt2,n:=t=1T{rn,tnyn,n,t}0,n:t=1Tgt3,n0,n,m:t=1Tgt4,n,m0,t,n:htn:=mdmxn,m,tcn0,t,n,m:xn,m,t,yn,n,tN,zn,m,tload{0,1},
约束转换为长期版本,并予以简化处理:

在这里插入图片描述

I t I_t It是x,y,z组成的矩阵。

三、在线算法设计

在线学习:每一个时隙的决策应该从刚刚过去的决策中学习。

设计了一种新型的边缘推理多项式时间在线算法(OAEI),它有两个组成部分:

  • 在线学习组件:克服对不确定用户查询的遗忘,并根据先前的观察输入结果返回部分决策
  • 随机舍入组件:将分数决策转换为整数决策

在线算法组件

在这里插入图片描述

设计了一种交替的原对偶方法。注意到,求解的凸问题:

在这里插入图片描述

等价于求解:

在这里插入图片描述

那么Lagrange函数为:

在这里插入图片描述

因此,我们可以在通过修改的下降步骤使 L t ( I , λ t + 1 ) \mathcal{L_t}(I,λ_{t+1}) Lt(Iλt+1)相对于原始变量I最小化和通过双上升步骤使 L t ( I t , λ ) \mathcal{L}_t(It,λ) Lt(Itλ)相对于拉格朗日乘子 λ λ λ最大化之间进行交替。具体来说,在时刻 t + 1 t+ 1 t+1,解决了以下问题:

在这里插入图片描述

为了将分数决策 I t , t I_t,t It,t转换为整数,提出了一个随机舍入组件作为算法2。

该方式是基于primal dual的,是不是可以理解成等价为内点法创建的另一种创新的、适用于本问题的一种解法

随机舍入组件

随机舍入组件这里只关注01整型变量 z n , m , t z_{n,m,t} zn,m,t如何处理的。

Step1:分别处理每个小数值,并将其舍入为整数,其期望是舍入后的小数值本身,如第1行到第5行所示。

其实对于0~1之间的数而言,上述的操作及相当于根据数据接近1的程度对其取1或0

更具体地说,分数值可以分为两部分:小数部分 ⌊ A t ⌋ \lfloor A_t\rfloor At和实部分 A t A_t At。小数作四舍五入的概率。

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

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

相关文章

如何理解元数据、数据元、元模型、数据字典、数据模型这五个的关系?如何进行数据治理呢?数据治理该从哪方面入手呢?

如何理解元数据、数据元、元模型、数据字典、数据模型这五个的关系?如何进行数据治理呢?数据治理该从哪方面入手呢?导读一、数据元二、元数据三、数据模型四、数据字典五、元模型导读 请问元数据、数据元、数据字典、数据模型及元模型的区别…

数仓治理之数据梳理

目录 1.定义 2.用途作用 3.实施方法 3.1自上而下 3.1.1数据域梳理 3.1.2数据主题梳理 3.1.3 数据实体梳理 3.1.4设计数据模型 3.1.5优点 3.1.5缺点 3.2自下而上 3.2.1需求分析 3.2.2展现 3.2.3分析逻辑 3.2.4数据建模 3.2.5优点 3.2.6缺点 1.定义 “数据梳理”即对…

SpringBoot 如何保证接口安全?

为什么要保证接口安全对于互联网来说,只要你系统的接口暴露在外网,就避免不了接口安全问题。 如果你的接口在外网裸奔,只要让黑客知道接口的地址和参数就可以调用,那简直就是灾难。举个例子:你的网站用户注册的时候&am…

【云原生kubernetes】k8s数据存储之Volume使用详解

目录 一、什么是Volume 二、k8s中的Volume 三、k8s中常见的Volume类型 四、Volume 之 EmptyDir 4.1 EmptyDir 特点 4.2 EmptyDir 实现文件共享 4.2.1 关于busybox 4.3 操作步骤 4.3.1 创建配置模板文件yaml 4.3.2 创建Pod 4.3.3 访问nginx使其产生访问日志 4.3.4 …

I.MX6ULL_Linux_系统篇(27) 系统烧录工具

前面我们已经移植好了 uboot 和 linux kernle,制作好了根文件系统。但是我们移植都是通过网络来测试的,在实际的产品开发中肯定不可能通过网络来运行,因此我们需要将 uboot、 linux kernel、 .dtb(设备树)和 rootfs 这四个文件烧写到板子上的…

Nginx学习 (2) —— 虚拟主机配置

文章目录虚拟主机原理域名解析与泛域名解析(实践)配置文件中ServerName的匹配规则技术架构多用户二级域名短网址虚拟主机原理 为什么需要虚拟主机: 当一台主机充当服务器给用户提供资源的时候,并不是一直都有很大的用户量&#…

数据库面试题总结——DBA面试battle指南

目录 前言 数据库复制 oracle和pg的同步原理 mysql的同步原理 mysql的GTID 主从架构如何保证数据不丢失 oracle的保护模式 pg的日志传输模​​​​​​​式 mysql同步模式 从库只读 oracle的只读 pg的只读 mysql的只读 索引结构和寻迹 B树索引 索引寻迹 绑定执…

nacos源码入门

nacos官方文档地址:nacos官方文档 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 简单来说,nacos就是一个注册中心、配置中心&#xff0…

灯具照明行业MES系统,助力企业实现数字化转型

灯具照明行业在制造领域,是典型的高科技离散生产制造模式,大部分企业都设置:电源组件、光源组件、或光电一体组件 ,工艺以SMT、DIP等。 灯罩主要采用吸塑工艺及模具加工;其它金属的面盖、灯体、灯盒基本都是采用压铸、…

传送点遍历分析

由于《天涯明月刀》的地图较大,所以每个地图中会分布很多的传送点,而这些传送点都可以在访问过地图之后以“御风神行”这类技能进行传送。为了能够很好的利用这类技能,提高外挂的效率,传送点的遍历是必不可少的。 首先找一个可以…

代码随想录算法训练营第七天|454.四数相加II 、 383. 赎金信 、 15. 三数之和 、18. 四数之和

454.四数相加II 454.四数相加II介绍给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:思路因为是存放在数组里不同位置的元素,因此不需要考虑去重的操作,而…

深度学习算法简要总结系列

今天突发奇想,准备一个总结系列,以备面试只需,嘿嘿,忘了就回来看看,以框架流程为主,不涉及细节、 点云 pointnet 代码仓库 https://github.com/yanx27/Pointnet_Pointnet2_pytorch 参考博客 论文阅读笔记 …

java单元测试批处理数据模板【亿点点日志配合分页以及多线程处理】

文章目录引入相关资料环境准备分页查询处理,减少单次批量处理的数据量级补充亿点点日志,更易观察多线程优化查询_切数据版多线程_每个线程都分页处理引入 都说后端开发能顶半个运维,我们经常需要对大量输出进行需求调整,很多时候…

Umi + React + Ant Design Pro 项目实践(一)—— 项目搭建

学习一下 Umi、 Ant Design 和 Ant Design Pro 从 0 开始创建一个简单应用。 首先,新建项目目录: 在项目目录 D:\react\demo 中,安装 Umi 脚手架: yarn create umi # npm create umi安装成功: 接下来,…

《OpenGL宝典》--纹理

文章目录创建并初始化纹理创建纹理更新纹理数据纹理目标和类型从着色器中读取纹理数据采样器类型使用texelFetch内置函数从着色器读取纹理使用texture()函数从着色器读取纹理获取更多信息控制纹理数据的读取方式使用采样器对象存储采样器包装和过滤模式的…

AVL树的介绍和实现

我们知道,二叉搜索树是会出现单向的。单向在查找时效率是非常低的,时间复杂度会退化成O(N),而AVL树就是解决这个问题。 文章目录1. AVL 树1.1 AVL树的概念1.2 AVL树节点的定义1.3 插入后的平衡因子1.4 AVL树的旋转1.4.1 右右:左单…

JavaScript 循环实例集合

文章目录JavaScript 循环实例集合For 循环循环输出 HTML 标题While 循环Do while 循环break 语句continue 语句使用 For...In 声明来遍历数组内的元素JavaScript 循环实例集合 For 循环 源码 <!DOCTYPE html> <html> <head> <meta charset"utf-8&q…

PG数据库入门知识

前言 Linux和windows的路劲分隔符是不同的&#xff0c;Linux下是斜杠/,而windows是反斜杠&#xff08;\&#xff09;。但在PG里window下也要使用linux的/作为路劲分隔符。 基础知识 为什么选择PG PostgreSQL是一款企业级关系型数据库管理系统。PostgreSQL之所以如此特别&am…

如何成为程序员中的牛人/高手?

目录 一、牛人是怎么成为牛人的&#xff1f; 二、关于牛人的一点看法 三、让程序员与业务接壤&#xff0c;在开发团队中“升级” 四、使用低代码平台 目标效果 五、最后 祝伟大的程序员们梦想成真、码到成功&#xff01; 一、牛人是怎么成为牛人的&#xff1f; 最近在某…

Android开发学习—手机开机启动的AMS流程

前言 AMS是Android中最核心的服务&#xff0c;主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作&#xff0c;其职责与操作系统中的进程管理和调度模块相类似&#xff0c;因此它在Android中非常重要。 客户端使用ActivityManager类。由于AMS是系统核心服…