过往研究表明,在给大语言模型输入文本时,有许多参数对输出结果的影响极小,这一现象称为稀疏激活。稀疏激活在推理加速方面具有重要的价值,稀疏加速框架如 Deja Vu、PowerInfer 通过减少在这些低影响参数上的大量存算成本,显著提升了推理速度。使用线性整流函数(ReLU)或其变式作为前馈神经网络(FFN)的激活函数是实现内生稀疏激活的理想途径。然而,近年的主流大模型往往采用 GELU、SiLU 等激活函数,普遍缺乏相对显式的稀疏激活特性,大语言模型的稀疏化问题亟须更加深入的研究。为此,我们需要回答一个核心问题:如何通过稀疏化得到同时具有较高的稀疏度和下游任务表现的模型?
近日,我组联合中国科学院计算技术研究所、腾讯公司等提出了 ProSparse 方法。该方法可以将大语言模型从非 ReLU 激活转化为 ReLU 激活的稀疏版本,达到更高稀疏程度的同时,有效缓解下游任务性能的损失问题。相比于现有工作,ProSparse 率先将渐进式的 L1 正则约束应用于大语言模型的稀疏化训练,并顺利将 LLaMA2-7B 与 LLaMA2-13B 分别转化为稀疏度达 89.32% 与 88.80% 的 ReLU 激活模型,同时该稀疏模型的下游任务表现与基于 SiLU 激活的原始 LLaMA2 模型相当。
上述两种规模的稀疏 LLaMA2 模型均已在 Huggingface 平台开源,并在不到一个月的时间内获得了超过 4,300 的下载量。
论文信息
截至2024年3月24日 ProSparse LLaMA2-7B 的下载量
➤ 论文地址
🔗 https://arxiv.org/abs/2402.13516
➤ 稀疏模型开源地址
ProSparse LLaMA2-7B:
🔗 https://huggingface.co/SparseLLM/prosparse-llama-2-7b
🔗 https://huggingface.co/SparseLLM/prosparse-llama-2-13b
ProSparse 的稀疏化训练过程
具体而言,我们可以将 ProSparse 的稀疏化训练过程概括为三个步骤:
ProSparse 的三个核心步骤
激活函数替换(Activation Function Substitution):将原始模型的激活函数替换为ReLU,并继续训练一定步数;
渐进式稀疏约束(Progressive Sparsity Regularization):对FFN的中间层输出施加 L1 正则化约束,并使得正则化系数呈渐进式的多阶段上升,每个阶段伴有一定步数的训练;在第一个阶段,约束系数取值为一个固定的、较小的值;而在之后每个阶段里,约束系数沿着一条平缓的正弦曲线缓慢上升,以给模型更多的适应时间,缓解急剧的正则化给模型表现带来的潜在风险;
激活阈值调整(Activation Threshold Shifting):将ReLU激活函数的阈值调整为一个正值,以对非零但实际影响较小的激活值做进一步裁减。
基础实验分析
我们在 LLaMA2-7B 与 LLaMA2-13B 上应用了ProSparse 方法,在训练相同 token 总数的情况下,与多个基线进行了对比。结果证明,ProSparse 模型是唯一一个可以取得较高稀疏度,并且下游任务表现与原始 LLaMA2 相当的稀疏化方法。
ProSparse 和各基线方法的稀疏度与任务表现对比
与此同时,我们发现在渐进式稀疏约束阶段,ProSparse 可以使模型的稀疏度呈现稳定的上升趋势,而非零的 L1 正则化约束的存在是稀疏度在训练过程中递增的充要条件。
ProSparse 与各基线在训练过程中的稀疏度变化趋势
推理加速分析
为了证明 ProSparse 所取得的更高的稀疏激活比例对推理加速有实际贡献,我们考虑了以下两类算法。
其一是基于激活分布预测的近似加速算法,此类算法凭借额外训练的预测网络提前掌握模型对特定输入的激活分布,仅计算被预测激活的参数,其加速效果与推理准确性依赖于模型激活分布的可预测性(通过预测网络的激活召回率和预测稀疏度来衡量)。为此,我们使用 PowerInfer 框架适配 ProSparse 及各基线方法所得的模型进行推理加速。结果表明,模型的稀疏度越高,激活分布可预测性指标就越好,而 PowerInfer 的加速效果越显著。
其二是基于稀疏 GPU 算子的精确算法,我们实现了两个利用稀疏激活进行 FFN 运算加速的高性能稀疏 GPU 算子(https://github.com/Raincleared-Song/sparse_gpu_operator),分别对 FFN 中的两个带有稀疏性的计算步骤进行精度无损的加速。类似地,实验结果表明更高的稀疏度可以显著提升算子的加速性能,而 ProSparse 作为任务表现与原模型可比的方法中取得最高稀疏度的一种,可以从二类加速算法中都取得最好的实际加速收益。
推理加速效果测试
单数据集上的稀疏度分析
我们测试了 ProSparse 模型在不同数据集上的稀疏度,发现在指令微调类数据集上的稀疏度显著高于非指令微调的数据。总体来看,数据的形式化程度越高,ProSparse 模型的稀疏度就越高。考虑到实际大模型应用场景中,模型的输入大多为类指令微调的数据,因此可以期望 ProSparse 具有较好的实际应用潜力。
单数据集稀疏度测试
总结与展望
在上述工作中,我们提出了一种对任务表现低损耗的、可取得较高稀疏度的大语言模型稀疏化方法 ProSparse,训练并开源了稀疏度将近 90% 而任务表现可比的 LLaMA2版本,下载路径见文章开篇,欢迎大家使用!
在未来,我们还将继续对模型稀疏度和正则化约束间的定量关系、稀疏激活大模型的scaling特性等进行更加深入的理论分析,提供更加高效稀疏的大语言模型。
作者简介
/ 宋晨阳 /
论文主要作者
THUNLP实验室二年级博士生,在自然语言处理尤其是基础大模型架构方面有一定研究经验,研究兴趣主要包括稀疏化大模型和多模态大模型的基础架构及理论特性分析,期望为实现更加统一、高效、可解释的通用人工智能出一份力量。
关于我们
清华大学自然语言处理与社会人文计算实验室(TsinghuaNLP)成立于 20 世纪七十年代末,是国内开展自然语言处理研究最早、深具影响力的科研单位,也是中国中文信息学会计算语言学专业委员会及中国人工智能学会因果与不确定性人工智能专业委员会的挂靠单位。实验室在学术总体带头人孙茂松教授及学术方向带头人刘洋教授、刘知远副教授的带领下,围绕以中文为核心的自然语言处理,在语言大模型、跨模态大模型、中文信息处理、机器翻译、知识图谱、智慧教育、社会人文和艺术计算等方面开展系统深入的研究,在国内外具有较大的学术影响。近年来,实验室承担了国家 973 项目、国家重点研发项目、国家社会科学基金重大项目等多项重要研究任务,并与腾讯、华为、搜狗等企业建立密切的学术合作关系。
Website:http://nlp.csai.tsinghua.edu.cn/
Email:thunlp@163.com
GitHub:https://github.com/thunlp
https://github.com/OpenBMB
Twitter:https://twitter.com/TsinghuaNLP
THUNLP 长期开放招聘|含实习
🎓 科研团队:七大研究方向 ➤ 点击阅读原文
模块化大模型
数据-模型孪生技术
工具学习与自主智能体
大模型群体智能
大模型对齐
多模态大模型
大模型训练动力学
💻 工程师团队 ➤ 点击阅读原文
大模型方向研究员
大模型算法工程师
多模态数据工程师
NLP算法工程师
大数据基础架构高级工程师
前端工程师
后端工程师
全栈工程师