
优化加速
文章平均质量分 79
Law-Yao
数字信号处理与人工智能相关的软硬件系统实现工作。
展开
-
Transformer模型的训练后剪枝方法
最终,针对BERT-base与DistilBERT的结构剪枝,通过本文提出的训练后剪枝方法,在GLUE与SQuAD数据集上,能够实现2x的FLOPS降解、1.56x的推理加速,精度损失低于1%;因此,针对给定的约束条件,通过最小化剪除的Attention heads与FFN Neurons的重要性,可实现剪枝Mask的搜索,搜索算法如下(类似于Post-training量化,仅需少量无标注数据的校准(特征对齐、最小化重建误差等校准方法),通过训练后压缩方法便能获得较好的压缩效果,且。原创 2022-10-07 09:32:17 · 3702 阅读 · 0 评论 -
Polarization Regularizer——极化剪枝
Paper地址:https://papers.nips.cc/paper/2020/file/703957b6dd9e3a7980e040bee50ded65-Paper.pdfGitHub地址:https://github.com/polarizationpruning/PolarizationPruning基本原理基于L1 regularizer的剪枝技术,其Scaling factors(用于生成剪枝Masking)的数据分布不容易被区分。因而,由剪枝率决定的Threshold,容易筛原创 2021-12-01 17:17:54 · 1613 阅读 · 1 评论 -
PTQ4ViT: Vision Transformer的PTQ方法与框架
参考论文:https://arxiv.org/abs/2111.12293前言将传统的PTQ策略(文章以对称均匀量化为例)直接应用于Vision Transformer,通常会导致较大的精度损失,例如实施8bits量化时,预测精度损失可能超过1%,主要原因在于,Post-Softmax与Post-GELU输出激活的数据分布是偏离高斯分布的:首先在Self-Attention模块中,Softmax计算输出的Attention map呈现对角线聚焦分布、体现出严重的不平衡分布(unbalanced原创 2021-11-26 20:06:51 · 1909 阅读 · 0 评论 -
NetAug——增强Tiny-model的训练效果
Paper地址:https://arxiv.org/abs/2110.08890前言通常当深度学习模型的参数规模较大,甚至大于数据集规模时(例如ResNet50与ImageNet2012-1K),常规模型训练容易陷入过拟合状态(Over-fitting)。因此可引入一系列训练增强技巧(正则化技术)、以增强训练效果,诸如Data Augmentation与Dropout等技术:Data Augmentation通过对采样数据施加变换操作,能够引入数据噪声(如高斯白噪声、随机旋转、随机裁剪、随机Re原创 2021-10-25 12:57:20 · 931 阅读 · 0 评论 -
VR-DANN: 联合视频解码与AI处理
方案概述联合视频解码、与视频的AI分割/检测处理,提升视频AI处理实时性; 参考论文:https://ieeexplore.ieee.org/abstract/document/9251974算法步骤解码I/P关键帧,获取B关键帧的运动矢量; 将NN-L (ROI SegNet)模型,应用于I/P帧,获得参考分割结果; 利用参考分割结果、与运动矢量,重建B帧的分割结果; 将I/P帧分割结果、与B帧重建分割结果,组成三通道Tensor、送入NN-S执行Refine,消除边界模糊;主要特点原创 2021-08-09 13:52:22 · 699 阅读 · 0 评论 -
AdaQuant——基于优化方式求解量化参数
背景模型经过量化,势必引入量化噪声;大多数情况下,会导致推理精度下降; 为改善量化后精度,通常的策略: PTQ路线:改进PTQ策略(如KL改进),或叠加有助于减少量化误差的PTQ策略(如ADMM、Bias Correction、AMP); 优势:简单易用,见效快; 劣势:未必能完全消除精度损失; QAT路线:通过训练数据微调,改善量化效果; 优势:精度效果相对更好;更适合极低精度量化; 劣势:存在训练成本,维护升级相对吃力;精度效果未必好,也依赖策略选择;原创 2021-04-16 19:44:30 · 4708 阅读 · 0 评论 -
INT16乘累加防溢出量化训练——Overflow-aware Quantization
简介参考论文:https://arxiv.org/abs/2005.13297 OAQ (Overflow-aware Quantization)利用量化比特位宽的表示冗余,借助INT16单元寄存中间、与最终乘累加结果,在ARM平台上实现计算加速;基本原理文章基于TF-Lite的非对称量化训练算法,提出了INT16乘累加防溢出条件:总体来说,要求整数的中间乘累加、与最终累积结果不能溢出INT16范围; 文章通过引入可调整的alpha因子,提出了整数量化范围的自适应调整机制: .原创 2021-01-11 18:54:57 · 1917 阅读 · 0 评论 -
ADMM深度模型稀疏化训练
基本原理参考论文:https://arxiv.org/abs/1804.03294GitHub:https://github.com/microsoft/nni/blob/master/nni/algorithms/compression/pytorch/pruning/admm_pruner.py组合优化问题基本的优化问题:引入辅助变量、对偶变量,构造ADMM正则化约束:交替方向优化求解固定Z与U,通过SGD优化求解得到:固定W,更新得到Z与U:..原创 2020-12-19 16:46:41 · 2354 阅读 · 3 评论 -
Proxyless NAS: Direct Neural Architecture Search on Target Task and Hardware
Paper:https://arxiv.org/abs/1812.00332GitHub (PyTorch):https://github.com/mit-han-lab/proxylessnasIntroductionNAS能够针对目标任务、以及目标部署平台,按自动化方式、搜索出性能与效率折中最好的网络结构; 如果目标任务的数据集规模比较大,通常会设计Proxy task (简化的中间任务),作为桥接目标任务的桥梁:在Proxy task上的评估结果,可间接反映目标任务上的效果,用来指导N原创 2020-07-13 17:58:42 · 1197 阅读 · 0 评论 -
Transformer端侧模型压缩——Mobile Transformer
随着Transformer模型在NLP、ASR等序列建模中的普及应用,其在端侧等资源受限场景的部署需求日益增加。经典的mobile-transformer结构包括evolved tansformer、lite-transformer、mobile-bert、miniLM等模型,借助结构改进、知识蒸馏等策略实现了transformer模型的小型化、并确保精度鲁棒性。 The Evolved Transformer Paper Link:https://arxiv.org/abs/1901.1111.原创 2020-06-19 16:13:26 · 6484 阅读 · 1 评论 -
基于可训练Step-size的低比特量化——LSQ: Learned Step-size Quantization
Paper地址:https://arxiv.org/abs/1902.08153GitHub地址 (PyTorch):https://github.com/zhutmost/lsq-net基本量化设置计算结点伪量化:Weight跟Activation都采用Per-tensor量化; Scaling factor (Paper标记为Step size)是可学习参数;量化计算公式...原创 2020-02-12 11:37:14 · 6643 阅读 · 3 评论 -
NVIDIA INT4量化算法介绍
MLPerf是由来自学界和业界的多个组织(包括Google、Baidu、Intel、AMD、哈佛和斯坦福)共同发布的新型AI基准平台,用于衡量机器学习平台的AI性能,是目前业界最权威、最公正的AI性能评测平台之一。MLPerf目前已推出v0.5评测结果,参赛队伍包括Alibaba、NVIDIA、Google、Huawei等世界知名企业。MLPerf详情见官方网站的介绍:https://www....原创 2020-01-24 14:40:22 · 6138 阅读 · 0 评论 -
CUDA版本的Locality-aware NMS
EAST文本检测涉及的Locality-aware NMS,通过合并同类型的倾斜框(IOU高于一定的阈值),能够提高长文本框检测的有效性,但CPU版本的Locality-aware NMS执行速度较慢。CUDA版本的Locality-aware NMS如下:#include "rotate_gpu_nms.hpp"#include <vector>#include <i...原创 2019-11-30 13:15:29 · 1124 阅读 · 3 评论 -
Post-training量化策略——without training or re-training
基于Pre-trained模型,采用Post-training量化策略,能够在一定程度上弥补量化精度损失,并且避免了相对耗时的quantization-ware training或re-training过程。 WA与BC "Data-Free Quantization through Weight Equalization and Bias Correction" 这篇文章提出了两种po...原创 2019-10-01 10:22:47 · 5596 阅读 · 0 评论 -
结合量化的知识蒸馏(Quantization Mimic)
"Quantization Mimic Towards Very Tiny CNN for Object Detection"这篇文章通过将知识蒸馏(Knowledge Distillation)与量化技术(Model Quantization)有效结合,能够诱导训练生成纤细、但性能良好的目标检测网络(主干网络通道数少、层数浅的R-FCN或Faster RCNN)。Quantization Mim...原创 2018-08-28 15:44:56 · 7500 阅读 · 2 评论 -
Bi-Real Net——XNOR-net的增强与演进(Binary Neural Network)
"Bi-Real Net: Enhancing the Performance of 1bit CNNs with Improved Representational Capacity and Advanced Training Algorithm"这篇文章针对XNOR-net的缺陷,在网络结构及优化训练方面做了一系列增强与改进,具体包括引入one layer per block形式的shortc...原创 2018-09-08 18:54:05 · 5971 阅读 · 13 评论 -
目标检测网络的知识蒸馏
"Learning Efficient Object Detection Models with Knowledge Distillation"这篇文章通过知识蒸馏(Knowledge Distillation)与Hint指导学习(Hint Learning),提升了主干精简的多分类目标检测网络的推理精度(文章以Faster RCNN为例),例如Faster RCNN-Alexnet、Faster...原创 2018-09-06 17:01:21 · 18266 阅读 · 23 评论 -
在线多分支融合——Knowledge Distillation by On-the-Fly Native Ensemble
"Knowledge Distillation by On-the-Fly Native Ensemble"这篇文章基于给定的基础网络(如Resnet等),通过在网络深层次构造多分支结构,且每个分支作为学生网络,能够融合生成推理性能更强的教师网络。进而,通过教师/学生网络的共同在线学习、教师知识的反馈蒸馏,能够训练得到性能优越的单分支模型或多分支融合模型。基于ONE(On-the-Fly ...原创 2018-10-02 16:23:19 · 3751 阅读 · 0 评论 -
鉴别力感知的通道剪枝——Discrimination-aware Channel Pruning
"Discrimination-aware Channel Pruning for Deep Neural Networks"这篇文章首先认为通道剪枝能够确保剪枝后模型与现有深度学习框架兼容,避免非规整的稀疏运算。其次基于训练的通道剪枝策略,需要在训练过程中施加稀疏约束或正则化约束,通常消耗较大的训练时间。另外基于最小化输出特征重建误差、layer-by-layer方式的剪枝策略(channel ...原创 2018-11-08 15:42:36 · 6571 阅读 · 4 评论 -
ThiNet——基于Greedy Method与最小化重建误差的Channel Selection
"ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression"这篇文章的主要贡献包括:1)基于贪心策略与最小化重建误差,设计了ThiNet剪枝方法,并且是规整的通道剪枝方法;2)将网络剪枝视作优化问题,并利用下一层的输入输出关系获取统计信息,以决定当前层的剪枝;3)在ImageNet数据集上,获得了良好的...原创 2018-12-19 14:05:30 · 2156 阅读 · 6 评论 -
PeleeNet——一种面向实时应用的精简CNN结构
Pelee: A Real-Time Object Detection System on Mobile Devices1、Pelee分类网络PeleeNet是一种基于Densenet的轻量化网络变体(variant),主要面向移动端部署。分类网络的结构改进包括以下五点:1)Stem Block:实现输入图像空间维度的第一次降采样(stride=2)和通道数的增加。并且在不增加较多计算...原创 2018-12-28 16:16:18 · 15110 阅读 · 1 评论 -
基于连接重要性的稀疏剪枝
"SNIP: single shot network pruning based on connection sensitivity" 这篇文章提出了基于权重连接重要性(saliency)的剪枝方法,能够在深度模型训练之前(初始化阶段),通过mini-batch的多次采样,决定不同权重连接的重要性,进而根据剪枝目标生成剪枝模板(prunning mask)、应用于稀疏剪枝,从而节省了相对耗时的剪枝...原创 2019-03-22 16:16:02 · 4219 阅读 · 14 评论 -
The Lottery Ticket Hypothesis: 寻找最优子网络结构
"The Lottery Ticket Hypothesis Finding Sparse, Trainable Neural Networks" 这篇文章提出了Lottery Ticket Hypothesis,认为较复杂的深度神经网络存在一个比较优化的稀疏子网络结构(称之为winning tickets),可应用于模型压缩。相比于原网络,稀疏子网络的参数量与复杂度要低许多,但推理精度基本相当。...原创 2019-05-08 16:27:11 · 8286 阅读 · 0 评论 -
MXNet的高效率CUDA NMS解析
非极大抑制(NMS:Non Maximum Suppression)起到边框(水平框或倾斜框)去重叠的作用,广泛应用于通用目标检测、人脸检测与OCR检测等算法的后处理。简单的Python实现如下:def standard_nms(S, thres): order = np.argsort(S[:, -1])[::-1] keep = [] while order.si...原创 2019-06-13 11:51:41 · 1862 阅读 · 0 评论 -
基于生成对抗的结构剪枝——Generative Adversarial Learning
"Towards Optimal Structured CNN Pruning via Generative Adversarial Learning" 这篇文章提出了非常新颖的结构剪枝策略:基于生成对抗的思路,将剪枝网络设置为生成器(Generator),其输出特征作为Fake,并设置Soft Mask门控一些异质结构的输出(如通道、分支、网络层或模块等);将预训练模型设置为Baseline,B...原创 2019-07-29 16:11:37 · 3743 阅读 · 0 评论 -
基于几何中位数的通道剪枝——Filter Pruning via Geometric Median
"Filter Pruning via Geometric Median for Deep Convolutional Neural Networks Acceleration" 这篇文章开门见山地指出了"smaller-norm-less-important"剪枝策略的不足,即通常需要满足两个前提条件:1)首先要求filter norm数据分布的偏差足够大,确保在宽泛的分布区间内,通过阈值化处理...原创 2019-08-02 11:36:53 · 4866 阅读 · 9 评论 -
通过训练获得最优量化区间——Quantization Interval Learning
"Learning to Quantize Deep Networks by Optimizing Quantization Intervals with Task Loss" 这篇文章提出了通过训练获得最优量化器的方法(QIL: Quantization Interval Learning),能够为网络权重与激活的量化,找到最优的量化区间或量化器参数。针对指定的训练任务,比如ImageNet图像...原创 2019-07-22 16:08:59 · 4405 阅读 · 0 评论 -
深度学习模型压缩与优化加速(Model Compression and Acceleration Overview)
1. 简介深度学习(Deep Learning)因其计算复杂度或参数冗余,在一些场景和设备上限制了相应的模型部署,需要借助模型压缩、优化加速、异构计算等方法突破瓶颈。模型压缩算法能够有效降低参数冗余,从而减少存储占用、通信带宽和计算复杂度,有助于深度学习的应用部署,具体可划分为如下几种方法(后续重点介绍剪枝与量化):线性或非线性量化:1/2bits, int8 和 fp16等; 结构或...原创 2018-07-17 17:49:48 · 46544 阅读 · 18 评论