(2025|ICLR|厦大华为,LoSA,基于表示互信息的动态层级稀疏率,基于重构误差的秩分配)LLM 的动态低秩稀疏自适应

embedded/2025/3/13 11:27:26/

Dynamic Low-Rank Sparse Adaptation for Large Language Models

目录

1. 引言

1.1 关键词

2. 方法

2.1 预备知识

2.2 层级稀疏率确定

2.3 稀疏感知的秩分配

2.4 动态稀疏与适配

3. 实验

3.1 实验设置

3.2 语言建模

3.3 零样本任务

3.4 N:M 稀疏性

3.5 消融实验

3.6 分析

4. 结论


1. 引言

随着大语言模型(Large Language Models, LLMs)的发展,模型规模显著增加,极大提升了在多领域理解和生成内容的能力。然而,模型规模的指数增长也带来了部署和推理困难,主要表现为计算需求和延迟的剧增。针对这些问题,模型压缩方法,如稀疏化(Sparsity)、量化和知识蒸馏被广泛研究,其中稀疏方法在降低模型大小和推理延迟方面表现突出。

现有的稀疏方法,如 SparseGPT 和 Wanda,在高稀疏度情况下性能会严重退化,通常需要额外的微调以恢复性能。低秩适配(Low-Rank Adaptation, LoRA)是一种高效的参数微调方法,但存在两个核心问题:

  • LoRA 无法在微调后融入稀疏的 LLM 权重中,导致推理延迟增加。
  • 均匀稀疏率和静态秩设置未能充分利用不同层之间的差异,限制了稀疏模型性能的恢复。

本文提出了一种 动态低秩稀疏适配方法(Dynamic Low-rank Sparse Adaptation, LoSA),实现了稀疏 LLM 与低秩适配的无缝集成。LoSA 在微调过程中动态调整稀疏率和秩,以提高稀疏 LLM 的性能而不增加推理延迟。具体而言,LoSA 通过 基于表示互信息(Representation Mutual Information, RMI)的动态层级稀疏率 基于重构误差的秩分配策略 实现了稀疏与低秩适配的有效融合。

1.1 关键词

语言模型(LLMs),稀疏化(Sparsity),低秩适配(LoRA),表示互信息(Representation Mutual Information, RMI),稀疏感知秩分配(Sparsity-Aware Rank Allocation),动态稀疏微调(Dynamic Sparse Fine-tuning)

2. 方法

2.1 预备知识

本文基于 SparseGPT 的思想,将 LLM 的稀疏化视作逐层的重构问题。具体而言,将密集模型每一层的权重与输入特征图进行稀疏化掩码处理,并引入低秩适配模块以减小稀疏引入的重构误差。通过统一优化问题同时确定稀疏掩码、层级稀疏率和层级秩分配。

优化目标是尽量减少稀疏 LLM 的每一层与其对应的密集层之间的输出差异:

其中,i:层,s:稀疏率,r:秩,X:输入,M:掩码,W:权重,BA:低秩矩阵 

图 1:将传统的稀疏 LLM 与 LoRA 相结合与 LoSA 方法进行比较

  • (a) 传统的 LLM 稀疏方法采用均匀的稀疏率,而 LoRA 也使用均匀的秩。此外,LoRA 权重不能合并(merge)到稀疏 LLM 权重中。
  • (b) LoSA 对 LLM 执行动态稀疏低秩自适应,同时将稀疏性应用于 LLM 和低秩自适应。此外,LoSA 根据表示互信息动态确定逐层稀疏率,并根据稀疏 LLM 的重建误差分配低秩自适应的秩。 

2.2 层级稀疏率确定

现有稀疏方法采用均匀稀疏率,忽视了层间重要性的差异。本文基于 RMI 提出了一种快速计算层级重要性的方法。RMI 用于衡量不同层之间的冗余性,进而确定每一层的稀疏率。

  • 公式 2:信息瓶颈(Information Bottleneck,IB),用于压缩冗余
  • 公式 3:扩展的 IB,附加了最小化层间信息冗余。

上式意味着与其他层高度相关的层不太重要。 层 i 的重要性计算为:

层稀疏率 s 计算为:

上述方法难以计算,可利用归一化 Hilbert-Schmidt 独立性准则(Hilbert-Schmidt Independence Criterion,HSIC)实现快速高效计算,仅需通过模型的特征图即可完成,极大降低计算复杂度。

其中,X_i 表示第 i 层的输入,X 表示第 i 层的特征图。

【注:直观理解,类似于余弦相似度,两层特征图相似度越高,这两层的相关度越高】 

2.3 稀疏感知的秩分配

使用低秩自适应可以有效恢复稀疏 LLM 的性能。为合理分配有限的低秩适配参数预算,本文提出了基于层级重构误差的秩分配方法,更高的重构误差意味着该层需要更多的微调参数。秩分配公式为:

其中,L_i 表示第 i 层的重构误差,L_avg 表示所有 n 层重构误差的均值, Ω 表示所有 n 层的平均秩,⌊x⌉ 将 x 四舍五入为最接近的整数。

2.4 动态稀疏与适配

本文进一步提出了一种动态稀疏与适配策略,逐步增加稀疏率,同时动态调整低秩适配模块的秩,以有效整合稀疏和微调。

执行 T 步稀疏性和微调,并使用立方稀疏性调度(cubic sparsity schedule)确定渐进稀疏率,如下所述:

其中 Θ^f 是最终稀疏率,Θ^t 表示第 t 步中 n 层的平均稀疏率。

此外,由于重构误差会随着稀疏率的上升而增加,因此在每个步骤中线性增加平均秩 Ω^t,即 

在计算步骤 t 的平均稀疏率 Θ^t 后,

  • 首先使用第 2.2 节中概述的方法建立分层稀疏率 s^t。
  • 随后,通过应用稀疏掩码 M^t 同时稀疏化 LLM 和低秩自适应的权重,该掩码是使用 SparseGPT或 Wanda 得出的。这种协调的方法确保了 LLM 权重和低秩自适应之间的兼容性,有助于在微调后将低秩自适应集成到 LLM 的稀疏权重中。
  • 一旦建立了稀疏 LLM,就会采用第 2.3 节中描述的秩分配方法确定低秩自适应的分层秩 r^t。
  • 算法的全部细节在算法 1 中概述。

3. 实验

3.1 实验设置

实验模型包括 LLaMA-1、LLaMA-2、LLaMA-3、Vicuna 和 OPT,参数规模覆盖 7B 到 70B。使用 WikiText-2 数据集评估语言建模能力,使用多个零样本任务评估模型泛化能力。微调数据集为从 Alpaca-GPT4 中随机抽取的 10K 样本,优化器为 Paged AdamW,学习率为 2×10⁻⁴,初始秩为 6。

3.2 语言建模

LoSA 方法在 WikiText-2 上显著降低了不同稀疏水平(50%-70%)下稀疏 LLM 的困惑度(Perplexity),表现显著优于 LoRA。如在 70% 稀疏率下,LLaMA-2-7B 使用 LoSA 微调,困惑度较 Wanda 降低 68.73,展现了显著的性能提升。

3.3 零样本任务

LoSA 在 HellaSwag、Winogrande 等七个下游零样本任务上明显提高了稀疏 LLM 的准确性。尤其在 70% 稀疏率下,LoSA 对 LLaMA-2-7B 的平均零样本准确率提升达 16.32%,明显优于 LoRA,证明了其强大的泛化性能。

3.4 N:M 稀疏性

LoSA 同样适用于混合 N:M 稀疏设置(如混合 2:8 稀疏,N 表示非零权重),通过给更重要层更低的 N 值,进一步提升了稀疏模型的性能,实验结果表明 LoSA 显著优于传统方法和 LoRA。 

3.5 消融实验

消融实验验证了层级稀疏率(LSR)、稀疏感知秩分配(SRA)和动态稀疏适配(DSA)三个核心策略的有效性。实验表明,移除任一策略都会导致性能下降,表明三者均对LoSA的性能提升具有贡献,其中动态稀疏适配策略的贡献最大。

步 T 决定了稀疏率增加的速度。T 越大,稀疏率增加越慢,每次删除的参数越少。 

3.6 分析

LoSA 微调效率高,参数量仅为 LoRA 的 1 − s%,GPU 内存占用与 LoRA 相近,但由于额外步骤耗时较长,LoSA 微调需要更多时间(约 45 分钟)。但其相比 LoRA 在推理速度和模型精度方面均有明显优势,如 CPU 加速最高达到 2.60 倍。

4. 结论

本文提出了动态低秩稀疏适配方法 LoSA,实现了 LLM 稀疏和低秩适配的统一优化,有效提升了稀疏 LLM 的性能,无额外推理延迟,并通过广泛实验验证了方法的高效性和实用性。


论文地址:https://arxiv.org/abs/2502.14816

项目页面:https://github.com/wzhuang-xmu/LoSA


http://www.ppmy.cn/embedded/172228.html

相关文章

【Godot4.4】写入和读取ZIP文件

概述 Godot提供了ZIPPacker类型来读写ZIP压缩包文件。本文是简单的写入和读取文件操作测试笔记。 写入纯文本文件 extends Buttonfunc _ready():write_zip_file("1.zip",func(zip_packer):write_txt_file_to_zippack(zip_packer,"1.txt","hhhhh&qu…

45.HarmonyOS NEXT Layout布局组件系统详解(十二):高级应用案例与性能优化

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT Layout 布局组件系统详解(十二):高级应用案例与性能优化 文章目录 HarmonyOS NEXT Layout 布局…

eNSP中路由器的CON/AUX接口、GE Combo接口、Mini USB接口、USB接口、WAN侧uplink接口、FE接口、GE接口介绍

路由器常见接口的详细介绍及其应用示例: 1. CON/AUX 接口 全称:Console/Auxiliary(控制台/辅助接口)作用: CON(Console):通过命令行界面(CLI)直接配置路由器…

重邮数字信号处理-实验六用 MATLAB 设计 IIR 数字滤波器

一、实验目的 1、加深对 IIR 数字滤波器设计方法和设计步骤的理解; 2、掌握用模拟滤波器原型设计 IIR 数字滤波器的方法; 3、能编写 MATLAB 函数,掌握设计 IIR 数字滤波器的函数调用方法; 4、根据不同的应用场景&#xff0…

Windows HD Video Converter Factory PRO-v27.9.0-

Windows HD Video Converter Factory PRO 链接:https://pan.xunlei.com/s/VOL9TaiuS7rXbu-1kEDndoceA1?pwd7qch# 支持300多种视频格式转换,在保留视频质量的同时,压缩率可达80%,转换速度可达50X速率! 支持画面剪切、片…

C++ 二叉搜索树代码

C 二叉搜索树代码 #include <iostream> using namespace std;template<typename T> struct TreeNode{T val;TreeNode *left;TreeNode *right;TreeNode():val(0), left(NULL), right(NULL){}TreeNode(T x):val(x), left(NULL), right(NULL){} };template<typena…

要登录的设备ip未知时的处理方法

目录 1 应用场景... 1 2 解决方法&#xff1a;... 1 2.1 wireshark设置... 1 2.2 获取网口mac地址&#xff0c;wireshark抓包前预过滤掉自身mac地址的影响。... 2 2.3 pc网口和设备对接... 3 2.3.1 情况1&#xff1a;... 3 2.3.2 情…

Google Filament 渲染引擎(2)-Backend 核心类介绍

Google Filament 渲染引擎(2)-Backend 核心类介绍 阅读说明: 本文基于 filament 版本: v1.58.0文本更加阐述 Backend 内部核心类的关系, 示例代码作了非常多的删减和简化 文本将以创建纹理为例, 阐述 Backend 内部的流程。后端图形接口以 OpenGL 为例。 核心类的功能概览: …