边缘智能模型训练、推理的关键技术

目录

  • 模型推理
    • 边缘智能模型推理的关键指标
      • 延迟(Latency)
      • 准确性(Accuracy)
      • 能效(Energy)
      • 隐私(Privacy)
      • 通讯/计算开销(Comm/comp Overhead)
    • 关键技术
      • 模型压缩(Model Compression)
      • 紧凑的模型设计
      • Once-for-all network
      • DNN Early-Exit
      • 批处理(Batching)
      • 模型分割(Model Partition)
      • 边缘缓存(Edge Caching)
      • 输入过滤(Input Filtering)
      • 模型选择
      • 应用优化(Application-level optimization)
      • 超分辨率(Super-resolution)
      • 硬件加速
  • 模型训练
    • 边缘智能模型训练的关键指标
      • 延迟(Latency)
      • 损失(Loss)
      • 收敛性(Convergence)
      • 隐私(Privacy)
      • 通讯/计算开销(Comm/comp Overhead)
    • 关键技术
      • 联邦学习
      • 聚合频率控制(Aggregating Frequency Control)
      • 梯度压缩(Gradient Compression)
      • 模型分割(DNN Splitting)
      • 迁移学习(Knowledge Transfer Learning)
      • Gossip Learning

模型推理

边缘智能模型推理的关键指标

在这里插入图片描述

延迟(Latency)

边缘智能的一个主要目标是实现低延迟的数据处理和决策。延迟是指从数据到达边缘设备到产生结果所需的时间。较低的延迟对于实时应用和对时间敏感的任务非常重要。

准确性(Accuracy)

在边缘设备上进行数据处理和决策时,确保结果的准确性至关重要。这包括模型的准确性、算法的有效性以及数据采集和传输过程中的数据完整性。

能效(Energy)

边缘设备通常具有有限的能源和计算资源。因此,在边缘智能中需要优化算法和模型,以提高能效,减少能源消耗,并延长设备的使用寿命。

隐私(Privacy)

边缘智能涉及处理和存储敏感数据,因此隐私保护是至关重要的指标。边缘设备需要采取适当的隐私保护措施,包括数据加密、数据匿名化、身份验证和访问控制等,以确保用户数据的安全和隐私。

通讯/计算开销(Comm/comp Overhead)

边缘智能系统涉及到数据的传输和计算过程,因此通信和计算开销是重要的指标。边缘设备通常具有有限的计算资源和带宽,因此需要优化算法和模型以减少通信和计算开销,提高系统的效率和性能。

关键技术

模型压缩(Model Compression)

模型压缩是一种降低深度学习模型大小和计算量的技术,以便在边缘设备等资源受限的环境中高效部署。

在这里插入图片描述
对训练好的模型进行压缩,有这三种比较常用的方法:

  • 模型剪枝(Model Pruning)

模型剪枝是一种通过减少深度学习模型中不必要的连接或参数来减小模型的大小和计算量的方法。剪枝可以基于参数重要性或结构进行。在参数重要性剪枝中,将模型中的参数按照重要性进行排序,并删除对模型性能影响较小的参数。而结构剪枝则专注于删除整个过滤器、通道或层。剪枝后的模型可以显著减少存储需求,并在推理过程中降低计算量,同时保持相近的性能水平。

  • 参数量化(Parameter Quantization)

参数量化通过将模型的参数和激活值从浮点数格式转换为低位表示,以减少模型的存储需求和计算复杂度。常见的参数量化方法包括固定点量化和浮点数量化。固定点量化将参数量化为固定位数的整数或小数,而浮点数量化将参数量化为更少的位数的浮点数。通过参数量化,可以大幅减小模型的存储空间,加快模型的推理速度,并降低能耗。

  • 参数编码(Parameter Encoding)

参数编码是一种将模型参数进行压缩和编码的方法,以减小模型的存储需求。参数编码利用统计性质或模型参数之间的相关性来编码模型参数。常见的参数编码方法包括矩阵分解、哈夫曼编码和向量量化。例如,使用矩阵分解方法可以将权重矩阵分解为较小的矩阵,从而减小模型的参数量。参数编码可以在保持模型性能的同时,显著减小模型的存储空间。

Deep Compression:综合使用了上述三种方法

Deep Compression(深度压缩)是一种综合应用多种模型压缩技术的方法,旨在实现深度神经网络的高度压缩和加速。Deep Compression由Han等人在2015年提出,并在Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding(论文链接:Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding)中详细描述。

紧凑的模型设计

在模型训练的时候可以通过改进网络架构本身来减少权重和操作的数量,即使用一系列总权重更小的小过滤器来代替大过滤器。
在这里插入图片描述
Google 提出的 MobileNet,

Once-for-all network

一个主网络,它包含了数量惊人的可以适应不同硬件平台和延迟限制的子网保持与独立训练相同的准确度。
在这里插入图片描述
Once-for-All(OFA)网络是由韩家炜等人在论文中提出的一个概念和方法,论文名为《Once-for-All: Train One Network and Specialize it for Efficient Deployment》。OFA网络的目标是在训练阶段将一个大型网络训练成一个可以在运行时动态专门化为小型高效子网络的模型。

OFA网络的关键思想是将模型的架构与计算资源等约束解耦。OFA引入了一个超级网络,其中包含各种不同的子网络,这些子网络具有不同的层宽度、深度或卷积核大小等架构选择。超级网络被训练的目标是找到一种在所有子网络上都表现良好的共享权重模式。

OFA网络训练过程中使用了两个关键步骤:策略采样和动态网络专门化。

  • 在策略采样阶段,从超级网络中随机采样一组子网络架构和超参数组合。然后,在训练过程中,通过共享权重来训练这些子网络,以便它们可以相互借鉴并学习到通用的特征表示。
  • 在动态网络专门化阶段,根据具体的计算资源和性能要求,从训练好的超级网络中选择并剪裁出最适合的子网络。

通过OFA网络,可以在单个模型中实现多样化的网络架构,并根据具体的部署需求选择最合适的子网络。这样可以在不牺牲性能的情况下,根据不同的资源限制和应用场景,灵活地部署高效的模型。OFA网络为解决模型灵活性和效率之间的权衡提供了一种创新的方法。

DNN Early-Exit

DNN Early-Exit(深度神经网络提前退出)是一种用于加速深度神经网络推理的技术。训练具有多个退出点且每个退出点大小不同的DNN模型。
在这里插入图片描述

传统的深度神经网络在进行推理时,通常会通过所有的层和节点进行前向传播,直到得到最终的输出。然而,对于某些输入样本,它们可能在较早的层次已经得到了足够的信息以进行准确的分类或回归,而后续的层次可能只会增加计算开销而带来较小的性能提升。

DNN Early-Exit的思想是在深度神经网络的中间层添加提前退出机制,允许网络在较早的层次上终止前向传播,并根据中间层的输出进行预测。这样,对于一些简单的输入样本,网络可以在较浅层次上快速获得结果,而对于复杂的输入样本,网络可以继续前向传播以获取更多的信息。

提前退出机制可以根据任务和数据集的特性进行设计。一种常见的设计方式是为每个中间层添加一个退出点,该退出点包括一个分类器或回归器来生成中间预测结果,并与最终的输出进行比较。如果中间预测结果已经满足某个停止准则(例如达到一定的置信度或误差容忍度),则网络可以提前停止计算并返回中间预测结果作为最终的输出。

DNN Early-Exit可以显著加快模型的推理速度,特别适用于对实时性要求较高的应用场景。它充分利用了输入样本的特点,避免了不必要的计算开销,提高了推理的效率。

但是在减少延迟的同时,提前退出损害了推理的准确性

批处理(Batching)

密集的线性代数计算,如dnn,执行效率要高得多输入被批处理在一起,也提高了GPU的利用率。
在这里插入图片描述
批处理大小权衡了性能和成本。

模型分割(Model Partition)

在服务器和边缘设备之间划分AI模型
在这里插入图片描述

边缘缓存(Edge Caching)

边缘缓存通过将内容或数据存储在靠近用户的边缘节点上,提供快速、低延迟的访问,并减少对源服务器的依赖,从而改善用户体验和网络性能。
在这里插入图片描述
边缘缓存(Edge Caching)是指将内容或数据存储并靠近终端用户,在网络的边缘位置提供服务。它涉及在地理分布的边缘位置(例如内容分发网络(CDN)节点)上放置缓存服务器或存储设备。

边缘缓存的目的是提供更快的内容访问速度和更低的延迟。通过将内容存储在靠近用户的边缘节点上,可以减少数据传输的距离和网络拥塞,从而提高用户体验。当用户请求某个内容时,如果内容已经缓存在边缘节点上,它可以直接从边缘缓存中获取,而无需通过远程的源服务器获取。这可以显著减少内容传输的时间和网络负载。

输入过滤(Input Filtering)

过滤没有目标对象的输入数据以进行快速推断,从而减少资源需求。
在这里插入图片描述

模型选择

根据输入数据的特征选择最佳DNN模型
在这里插入图片描述

应用优化(Application-level optimization)

针对特定应用的优化

对于基于视频的应用,可以降低输入视频的分辨率和帧速率,以减少资源需求
在这里插入图片描述

超分辨率(Super-resolution)

视觉传感器(摄像机)和云/边缘服务器之间的(无线)网络连接并不总是提供足够和稳定的带宽来实时传输高保真视频数据。

以低分辨率发送视频流,但通过超分辨率从低分辨率流中恢复高分辨率帧,从而将带宽消耗减少约6.8倍

在这里插入图片描述

硬件加速

  • 利用稀疏性加速DNN推理
  • 存储和通信优化
  • 数据流的新设计最大限度地减少了数据移动
  • 利用FPGA ASIC或微控制器

在这里插入图片描述

模型训练

边缘智能模型训练的关键指标

在这里插入图片描述

延迟(Latency)

边缘设备通常具有有限的计算资源和带宽。因此,在边缘设备上进行模型训练时,需要考虑训练过程的延迟。较低的延迟意味着模型能够在边缘设备上更快地完成训练,从而提高实时性和响应性。

损失(Loss)

损失是用于衡量模型在训练过程中的性能的指标。边缘智能模型训练需要关注模型在边缘设备上达到足够低的损失值,以确保模型的准确性和效果。

收敛性(Convergence)

模型的收敛性指模型是否能够在有限的训练迭代次数内收敛到最优解。边缘设备的计算能力有限,因此需要关注模型在边缘设备上的收敛速度和稳定性。

隐私(Privacy)

边缘智能模型训练可能涉及用户的敏感数据。在边缘设备上进行模型训练时,需要确保用户数据的隐私和安全。因此,隐私保护是一个重要的指标,需要采取适当的数据脱敏、加密和访问控制等措施。

通讯/计算开销(Comm/comp Overhead)

边缘设备的计算和通信资源有限。因此,在边缘设备上进行模型训练时,需要考虑计算和通信的成本。较低的计算和通信成本可以降低边缘设备上的负担,并提高训练的效率。

关键技术

联邦学习

联邦学习(Federated Learning)是一种分布式机器学习方法,旨在在保护用户数据隐私的同时,实现多个参与方之间的模型训练和共享知识。与传统的集中式模型训练不同,联邦学习将训练过程移动到本地设备或边缘设备上,避免了将数据传输到中央服务器的需要。
在这里插入图片描述

在联邦学习中,参与方包括具备边缘设备(如智能手机、传感器设备)的个体用户或边缘节点。每个参与方都保持其本地数据,并在本地进行模型训练。然后,通过加密和安全通信协议,仅将模型的更新参数传输到中央服务器进行聚合。

聚合频率控制(Aggregating Frequency Control)

聚合频率控制(Aggregating Frequency Control)是指在联邦学习中控制模型参数聚合的频率。在联邦学习中,参与方在本地进行模型训练,并将模型的参数更新传输到中央服务器进行聚合,以生成全局模型。聚合频率控制决定了参与方何时将其参数更新传输到中央服务器进行聚合。
在这里插入图片描述

更新聚集频率直接影响通信成本和训练损失

梯度压缩(Gradient Compression)

压缩方法:梯度量化和梯度稀疏化,以减少通信成本
在这里插入图片描述

  • 梯度稀疏化(Gradient Sparsification):在梯度稀疏化中,仅传输梯度中具有较大绝对值的重要元素,而将其他较小的梯度元素设置为零。这样可以将梯度表示为一个稀疏向量,从而减少传输的数据量。梯度稀疏化适用于具有稀疏梯度分布的情况,即大多数梯度元素接近于零。常用的梯度稀疏化方法包括Top-K梯度稀疏化和阈值截断。

  • 梯度量化(Gradient Quantization):梯度量化通过将梯度的浮点数表示转换为较低精度的整数或定点数表示,从而减少梯度的表示所需的比特数。常用的梯度量化方法包括固定点数表示和低比特位的浮点数表示。
    在这里插入图片描述
    梯度稀疏化和梯度量化可以单独使用,也可以结合在一起来进一步减少梯度传输量。这些方法的选择应根据具体的场景和需求进行,并需要权衡梯度精度和模型训练的性能。

模型分割(DNN Splitting)

模型分割(DNN Splitting)是一种用于处理大型深度神经网络(Deep Neural Network,DNN)的技术,该技术将大型的DNN模型分割成多个较小的子模型,以便在资源受限的设备或平台上进行部署和执行。

DNN模型可以在两个连续的层之间进行内部拆分,两个分区部署在不同的位置,而不会损失准确性。
在这里插入图片描述

在某些情况下,大型的DNN模型可能会超过设备的内存或计算能力限制,导致无法直接在该设备上运行。为了解决这个问题,可以使用模型分割技术将DNN模型分割成多个子模型,每个子模型只包含部分网络层或节点,以适应设备的资源限制。然后,这些子模型可以分别在不同的设备上运行,例如移动设备、嵌入式设备或边缘设备。

迁移学习(Knowledge Transfer Learning)

迁移学习(Transfer Learning)是一种机器学习方法,旨在通过将已学习的知识从一个任务或领域迁移到另一个任务或领域,来改善目标任务的性能。迁移学习的核心思想是,通过在源任务或领域上学习到的知识,可以帮助改善目标任务的学习效果。
在这里插入图片描述

首先根据基本数据集和任务训练基本网络(导师网络)。

然后将学习到的特征转移到第二目标网络(学生网络)进行训练。

在传统的机器学习中,通常假设源任务和目标任务的数据分布和特征空间是相同的。然而,在实际应用中,这种假设并不总是成立。迁移学习通过利用源任务的知识,可以解决目标任务中数据分布不同或样本数量不足的问题。

Gossip Learning

Gossip Learning(传言学习)是一种分布式机器学习方法,旨在通过节点之间的信息交换和合作来进行模型训练。在传统的分布式机器学习中,节点通常通过集中式服务器进行通信和模型更新,而Gossip Learning采用了去中心化的方式,节点之间直接进行信息传递和模型更新。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

node插件MongoDB(三)—— 库mongoose 的使用和数据类型(一)

前言 提示:使用mongoose 的前提是你安装了node和 MongoDB。 mongoose 官网文档:http://mongoosejs.net/docs/index.html 文章目录 前言一、安装二、基本使用1. 打开bin目录的mongod.exe文件2. 基本使用的代码(连接mongodb 服务)3.…

LeetCode算法题解(回溯,难点)|LeetCode37. 解数独

LeetCode37. 解数独 题目链接:37. 解数独 题目描述: 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分…

【C++ 学习 ㉟】- 异常详解

目录 一、C 异常处理的基本语法 1.1 - 抛出异常 1.2 - 检测和捕获异常 二、在函数调用链中异常栈展开的匹配原则 三、异常重新抛出 四、异常规范 五、C 标准异常体系 程序的错误大致可以分为以下三种: 语法错误:在编译和链接阶段就能发现&#xf…

<蓝桥杯软件赛>零基础备赛20周--第5周--杂题-2

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…

Java,多线程,线程的两种创建方式

首先是多线程的一些相关概念: 相关概念: 程序(program):为完成特定任务,用某种语言编写的一组指令的集合。即指一段静态(指不在执行中)的代码。 进程(process&#xf…

Qt QTableWidget表格的宽度

默认值 QTableWIdget的表格宽度默认是一个给定值,可以手动调整每列的宽度,也不填满父窗口 MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {this->resize(800,600);QStringList contents{"11","111111111111",&…

聊聊模板引擎<Template engine>

模板引擎是什么 模板引擎是一种用于生成动态内容的工具,通常用于Web开发中。它能够将静态的模板文件和动态数据结合起来,生成最终的HTML、XML或其他文档类型。模板引擎通过向模板文件中插入变量、条件语句、循环结构等控制语句,从而实现根据…

操作系统:输入输出管理(一)系统概述与设备独立性软件

一战成硕 5.1 I/O系统概述5.1.1 I/O设备5.1.2 I/O控制方式5.1.3 I/O软件层次结构5.1.4 应用程序的I/O接口 5.2 设备独立性软件5.2.1 与设备无关的软件5.2.2 高速缓存与缓冲区5.2.3 设备分配与回收5.2.4 spooling技术(假脱机技术) 5.1 I/O系统概述 5.1.1…

一分钟秒懂人工智能对齐

文章目录 1.什么是人工智能对齐2.为什么要研究人工智能对齐3.人工智能对齐的常见方法 1.什么是人工智能对齐 人工智能对齐(AI Alignment)指让人工智能的行为符合人的意图和价值观。 人工智能系统可能会出现“不对齐”(misalign)…

【EI会议征稿】JPCS独立出版-第五届新材料与清洁能源国际学术会议(ICAMCE 2024)

JPCS独立出版-第五届新材料与清洁能源国际学术会议(ICAMCE 2024) 2024 5th International Conference on Advanced Material and Clean Energy 第五届新材料与清洁能源国际学术会议(ICAMCE 2024)将于2024年2月23-25日在中国▪长沙…

电机应用-无刷直流电机

无刷直流电机 无刷直流电机(Brushless Dirent Current Motor,简称BLDCM)由电动机主体和驱动器组成,无电刷和无换向器,是除了有刷电机外用得最多的一种电机。 无刷直流电机不使用机械的电刷装置,采用方波自控…

带你一分钟看懂 “kubernetes”

目录 什么是 Kubernetes Kubernetes 概述 为什么需要 Kubernetes,它能做什么? 什么是 Kubernetes 从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在…

NFT Insider112:Gucci Cosmos LAND亮相 The Sandbox,和YGG一起探索Web3增长新方式

引言:NFT Insider由NFT收藏组织WHALE Members(https://twitter.com/WHALEMembers)、BeepCrypto(https://twitter.com/beep_crypto)联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周…

0基础制作产品图册的干货,一个网站即可

很多朋友想要制作产品图册,但是不知道如何入手,其实制作产品图册并不难,一个网站就可以搞定。下面就为大家分享一些干货,帮助大家快速入门。 首先,我们需要选择一个合适的网站。比如FLBOOK在线制作电子杂志平台。这个网…

【chat】3: ubutnu 安装mysql-8

如何在 Ubuntu 20.04 上安装 MySQLC搭建集群聊天室(七):MySQL数据库配置 及项目工程目录配置 大神是centos的. apt 安装 rootk8s-master-2K4G:~# sudo apt install mysql-server Reading package lists... Done Building dependency tree Re…

SQL触发器

触发器是与表有关的数据库对象。 在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发 器中定义的SQL语句集合。 触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作 。 使用别名OLD和NEW来引用触发器中发生变化的…

Google play提高上包率——如何防止封号、拒审、下架?

Google Play是全球最大的移动应用商店之一,它是运行Android操作系统的设备的官方应用商店。它提供各种数字内容,包括应用程序(应用)、游戏、音乐、书籍等,包括免费和付费选项。这也为许多游戏/APP出海的企业或开发者提…

国内首批!华为云云原生中间件DCSDMS获软件可信“卓越级”认证

11月6日,在软件供应链可信研讨大会上,工业和信息化部电子第五研究所(以下简称“电子五所”)发布了首批软件产品可信评估结果,并为通过评估的企业颁发证书。 华为云作为中国领先的综合云计算服务商受邀参加本次大会&…

【星海随笔】git的使用

1.在终端,检查git是否安装 git --version 2.没有安装的话去,官网,下载git 3.一直点下一步即可 4.安装后在终端检查git是否安装好 5.设置用户名和邮件地址(最好和GitHub的用户名/邮箱保持一致) git config --global user.name “自己的用户名”…

建表时如何合理选择字段类型

前言 我们在建表的时候关于字段类型的选择会有这么几类人: 严谨型 严格调研每个字段可能的大小,然后根据不同字段类型的限制,进行选择,这一类人在创建关系型数据表的时候是没有问题的。图自己省事型 把所有字段都设置为String&a…