目录
- 模型推理
- 边缘智能模型推理的关键指标
- 延迟(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采用了去中心化的方式,节点之间直接进行信息传递和模型更新。