大模型压缩技术
2025-12-10 06:07:55 0 举报
AI智能生成
大模型压缩技术是专为优化大型神经网络模型性能的先进技术。这项技术的核心在于将大型模型变得更加精简,同时保持其原有的性能或仅略作牺牲,这对于需要较少计算资源和更快推理时间的应用非常关键。该技术可用于深度学习模型的各种文件类型,包括训练过的权重文件和模型架构定义文件。 技术的核心内容包括但不限于参数共享,量化,模型分解,以及知识蒸馏等策略。参数共享减少了冗余计算;量化将浮点数权重映射到更低精度的数据类型;模型分解技术则将大型矩阵转换为多个小矩阵乘积;知识蒸馏传递大模型的知识到一个更小但效率更高的模型。通过这些方法,我们可以实现模型压缩而不显著牺牲性能,这些修饰语如"高效"、"节能"、"轻量化"和"加速"突出了大模型压缩技术在提升效率和可行性的方面。
作者其他创作
大纲/内容
神经网络概览
神经网络结构概览
前馈神经网络
感知机、浅层前馈、深层前馈
循环神经网络
RNN、LSTM、GRU、回声状态网络、液态状态机
自编码器
基础AE、变分AE(VAE)、稀疏(SAE)、去噪AE(DAE)
卷积神网络
深度卷积神经网络(DCN)、反卷积神经网络(DN)、深度残差网络(DRN)、Neoconitron
Neocognitron 可以看作是卷积神经网络的先驱,1979 by Fukushima,核心操作是卷积滤波加池化层
生成模型
生成对抗网络(GAN)
概率/记忆网络
马尔科夫链(MC)、霍普菲尔德网络(HN)、受限波兹曼机(RBM)、深度信念网络(DBN)
其他创新结构
胶囊网络(Captule Network)、神经图灵机(NTM)、注意力网络(AN)、极限学习机(ELM)
五大神经网络学习模式
迁移学习
从源任务迁移到目标任务,源任务和目标任务有一些共通的需求,目的是为了降低训练的数据要求
具体是在训练时候冻结部分权重,对目标任务微调部分权重
增量学习
用持续更新的数据扩展模型的能力,目标是避免忘记先前的知识
方法一:在损失函数中新加一项“跟旧权重的相似程度”
方法二:新加一项“跟旧模型(输入新数据的时候)输出的相似程度”
主动学习
机器自适应选择 “最具信息性” 的数据(例如里决策边际近的数据)让人类标注,降低标注成本
课程学习
模仿人类学习顺序,从 “简单数据” 开始训练,逐步过渡到 “复杂数据”,提升模型收敛效率。
上下文学习
演示检索 / 训练→问题输入→答案生成,无需更新模型参数
减枝 Pruning
减枝的主要目的为移除模型中冗余的参数(权重、神经元、通道),以达到压缩模型的目的(减少模型大小、计算量、能耗)
:剪枝后模型的损失函数(与原模型目标一致,如分类任务的交叉熵
:剪枝后的权重矩阵,为原权重
:范数,即中非零参数的数量
:剪枝后允许的最大非零参数数量(目标稀疏度)。
不同颗粒度减枝 通道级 / 内核级 / 向量级 / 模式级 / 单个权重级别
减枝方法
朴素减枝,衡量权重的重要性后,减去不重要的权重
直接基于权重的大小,用范数衡量权重的大小,通常用或者范数衡量
例如对于权重矩阵 ,第1行L2范数:,第2行L2范数:
修剪重要性更低的第1行,剪后权重为 。
修剪重要性更低的第1行,剪后权重为 。
基于缩放因子,专门针对卷积神经网络
在训练卷积层的时候新引入一个缩放因子,卷积层的输出=卷积输出 * 缩放因子,在训练后则可以直接删除缩放因子小的卷积通道
为了促使大部分缩放因子趋近于零,我们会在损失函数上添加一个正则化项(或称稀疏化正则化)来惩罚这些缩放因子
基于二阶信息 Optimal Brain Damage OBD 或者叫梯度
将W变成, 损失函数的梯度可以用泰勒展开估计
我们假设高阶项很小,可以忽略
在最小值附近,梯度为零
我们假设参数之间相互独立,海森矩阵非对角线元素可以忽略
基于互信息 Mutual Information
I(A, B) 表示两个维度集合A和B之间的互信息,在剪枝语境中,互信息越大,说明两个维度之间的关系越紧密,越应该被保留
从最后一层开始,从后往前挨个保留与下一层互信息最大的K个维度
基于平均零激活(APoZ)
ReLU输出中“零”比例越高的神经元越冗余
,在单次epoch权重更新中
基于优化的减枝,最小化重构误差
:通道选择向量,表示第c个通道被修剪;
:保留的通道数量;
:Frobenius范数,衡量矩阵差异。
如何求解这个公式?
用L1正则(LASSO)替代L0,避免NP-hard问题:(为正则系数,越大剪枝越彻底)
固定W,求(通道选择,用坐标下降法解LASSO)
固定,求W(最小二乘重构特征,约束避免 trivial解)
修剪与微调:移除的通道,微调剩余权重恢复精度。
彩票假说理论
随机初始化的稠密网络中,存在一个“中奖子网络”(Winning Ticket),单独训练子网络,能在相同迭代次数内达到原网络精度
如何得到中奖子网络?随机初始化稠密网络,训练网络至收敛,修剪各层中幅度最低的权重(设为0),将剩余权重“重置”为初始随机值,得到中奖子网络
渗流理论
为剪枝比例提供理论上限,避免过度修剪导致模型功能失效
网络需保留至少的“有效连接”(如平面网络),否则无法形成“信息传递通路”(,无无限开放路径)
量化 Quantization
将神经网路中的权重转换为低位数离散值,在保证精度损失可控的情况下,实现压缩模型
用低精度浮点值代替高精度浮点值
IEEE 754 float32 标准
符号位 1 bit,指数位 8 bit,分数位 23 bit,
如果指数位非0,则
如果指数位都为0,则
0 11111111 00..00
1 11111111 00..00
NaN
- 11111111 --..--
IEEE FP 16
1 + 5 + 10
Google BF16
1 + 8 + 7
E2M1 FP4
1 + 2 + 1
量化算法
K-Means Based
通过聚类算法将相似权重归为一类,用“聚类索引”代替原始权重,仅存储“索引+聚类质心(码本)”,实现存储压缩(计算时通过索引查表重构权重)
优点:仅优化存储,计算仍用浮点(精度损失小)
缺点:不加速计算(需查表+浮点运算),适合仅需压缩体积的场景。
Linear Quantization
线性量化是工业界最常用的方法,核心是通过仿射映射将整数与浮点数关联,实现“整数运算替代浮点运算”,兼顾存储压缩和推理加速。
仿射映射
r 为原始权重, q为量化后的权重
其中 S 为缩放因子
Z 为 Zero Point ,零点(确保0能准确的表示为整数)
权重中的异常值可能导致S过大,可能需要分组量化或者减枝规避
对称量化 / 非对称量化
对称量化
非对称量化 ,浮点范围非对称
量化可以简化、加速矩阵乘法运算
例如矩阵 Y= WX
二值/三值量化(极致压缩)
二值量化(Binary):权重仅取{+1, -1},用1bit存储,压缩比32倍
三值量化(Ternary):权重取{+α, 0, -α}(α为缩放系数),用2bit存储,兼顾压缩与精度。
量化技巧
自适应舍入(AdaRound)
通过学习舍入参数δ ∈ [0,1],使量化权重q = floor(w + δ),最小化“原始激活-量化激活”的误差(目标函数:min ||Wx - W_quant x||² + λ·reg);
混合精度量化(Mixed Precision)
对“重要权重”用高精度(如FP16/INT8),“非重要权重”用低精度(如INT4),平衡精度与效率;
Deep Compression(量化+剪枝+编码)
Han等人提出的“三位一体”压缩方案,实现极致压缩
剪枝:去掉权重绝对值小于阈值的连接(如保留10%连接)
量化:对剩余权重执行K-Means量化(如2bit)
霍夫曼编码:对聚类索引进行熵编码(高频索引用短码)
评估模型量化前后损失
1. 准确率
2. 如果是大语言模型,则用perplexity
模型在预测文本中每个词时,平均面临的 “候选词选择困难程度”
越小越好,模型对自己的输出越有信心,输出越确定
3. 压缩比例
4. 推理速度 / 能耗
分解 Decomposition
低秩分解 low rank decomposition 本质是用“低秩组件”,近似表示高维张量
矩阵低秩分解
SVD Decomposition
是 矩阵
是 对角矩阵
是 矩阵
张量低秩分解
CP 分解
压缩比为
Tucker 分解
压缩比为
Tensor Train 分解
每个 是一个 3 阶核,大小
叫 TT-ranks
(边界 rank)
Tensor Train 压缩高维张量特别有用
蒸馏 Distillation
Response-based Distillation
基于教师模型的输出的概率作为知识,教给学生模型
损失函数为
Feature-based Distillation
不仅对齐输出,还对齐中间层的的特征(就是中间层的输出)
损失函数
, 老师/学生某一层或多层的特征
, 对特征做对齐的变换,先做形状对齐比如 1×1 conv、线性投影,再做尺度对齐,比如normalize 等
, 一般是 L2、L1、cosine loss 等,用来度量两边特征差异
Relation-based Distillation
让学生模型模仿教师模型两层输出特征之间的关系
损失函数
其中可以是距离、相似度等
KL Divergence
自信息 self-information (surprise)
熵 Entropy
交叉熵 Cross Entropy
KL divergence
扩散模型 Diffusion Model
1. 首先讲图片变为均值为零,方差为一的高斯噪声
或者直接一步到位
2. 训练一个神经网络给定 和 t, 预测 中的噪声
损失函数为预测噪声跟实际噪声之间的距离
3. 从一张纯高斯噪声一步一步去噪,最后得到图像
:额外的噪声项,在生成过程中,我们会随机加上一个高斯噪声,来保证生成结果的多样性,这个噪声项在生成过程中会逐渐衰减到0
无损压缩
动态系统 Dynamic System
一个函数F如果说是Ergodic的如果:沿着函数的轨迹,可以遍历整个空间
这个函数可以遍历整个[0,1]的空间
Huffman Encoding
1. 反复合并集合中最小的两个节点,直到只剩下一个节点
2. 给边标注0和1,统一左边为0,右边为1(或者反过来,只要统一即可)
神经网络压缩图片
输入 x,y 输出 RBG,一个图片对应一个神经网络
0 条评论
下一页