共计 2840 个字符,预计需要花费 8 分钟才能阅读完成。
近日,阿里云机器学习 PAI 对于大模型稠密训练的论文《Parameter-Efficient Sparsity for Large Language Models Fine-Tuning》被人工智能顶会 IJCAI 2022 接管。
论文提出了一种参数高效的稠密训练算法 PST,通过剖析权重的重要性指标,得出了其领有两个个性:低秩性和结构性。依据这一论断,PST 算法引入了两组小矩阵来计算权重的重要性,相比于本来须要与权重一样大的矩阵来保留和更新重要性指标,稠密训练须要更新的参数量大大减少。比照罕用的稠密训练算法,PST 算法能够在仅更新 1.5% 的参数的状况下,达到相近的稠密模型精度。
背景
近几年各大公司和钻研机构提出了各式各样的大模型,这些大模型领有的参数从百亿级别到万亿级别不等,甚至于曾经呈现十万亿级别的超大模型。这些模型须要消耗大量的硬件资源进行训练和部署,从而导致它们面对着难以落地利用的窘境。因而,如何缩小大模型训练和部署所需的资源成为了一个急需解决的问题。
模型压缩技术能够无效的缩小模型部署所需的资源,其中稠密通过移除局部权重,使得模型中的计算能够从浓密计算转换为稠密计算,从而达到缩小内存占用,放慢计算速度的成果。同时,稠密相比于其余模型压缩办法(结构化剪枝 / 量化),能够在保障模型精度的状况下达到更高的压缩率,更加适合领有大量参数的大模型。
挑战
现有的稠密训练伎俩能够分为两类,一类是基于权重的 data-free 稠密算法;一类是基于数据的 data-driven 稠密算法。基于权重的稠密算法如下图所示,如 magnitude pruning[1],通过计算权重的 L1 范数来评估权重的重要性,并基于此生成对应稠密后果。基于权重的稠密算法计算高效,无需训练数据参加,然而计算出来的重要性指标不够精确,从而影响最终稠密模型的精度。
基于数据的稠密算法如下图所示,如 movement pruning[2],通过计算权重和对应梯度的乘积作为掂量权重重要性的指标。这类办法思考到了权重在具体数据集上的作用,因而可能更加精确的评估权重的重要性。然而因为须要计算并保留各个权重的重要性,因而这类办法往往须要额定的空间来存储重要性指标 (图中 S)。同时相较于基于权重的稠密办法,往往计算过程更加简单。这些毛病随着模型的规模变大,会变得更加显著。
综上所述,之前的稠密算法要么高效然而不够精确 (基于权重的算法),要么精确然而不够高效 (基于数据的算法)。因而咱们冀望提出一种高效的稠密算法,可能精确且高效的对大模型进行稠密训练。
破局
基于数据的稠密算法的问题是它们个别会引入额定的与权重雷同大小的参数来学习权重的重要性,这让咱们开始思考如何缩小引入的额定参数来计算权重的重要性。首先,为了可能最大化利用已有信息来计算权重的重要性,咱们将权重的重要性指标设计成如下公式:
即咱们联合了 data-free 和 data-driven 的指标来独特决定最终模型权重的重要性。已知后面 data-free 的重要性指标无需额定的参数来保留且计算高效,因而咱们须要解决的就是如何压缩前面那项 data-driven 重要性指标所引入的额定训练参数。基于之前的稠密算法,data-driven 重要性指标能够设计成
,因而咱们开始剖析通过该公式计算出来的重要性指标的冗余性。首先,基于之前的工作已知,权重和对应的梯度均具备显著的低秩性 [3,4],因而咱们能够推导出该重要性指标也具备低秩性,从而咱们能够引入两个低秩小矩阵来示意原始与权重一样大的重要性指标矩阵。
其次,咱们剖析了模型稠密后的后果,发现它们具备显著的结构性特色。如上图所示,每张图的左边是最终稠密权重的可视化后果,右边是统计每一行 / 列对应稠密率的直方图。能够看出,右边图有 30% 的行中的大部分权重都被移除了,反之,左边图有 30% 的列中的大部分权重都被移除了。基于这样的景象,咱们引入了两个小结构化矩阵来评估权重每一行 / 列的重要性。基于上述的剖析,咱们发现 data-driven 的重要性指标存在低秩性和结构性,因而咱们能够将其转换成如下示意模式:
其中 A 和 B 示意低秩性,R 和 C 示意结构性。通过这样的剖析,本来和权重一样大的重要性指标矩阵就被分解成了 4 个小矩阵,从而大大减少了参加稠密训练的训练参数。同时,为了进一步缩小训练参数,咱们基于之前的办法将权重的更新也分解成了两个小矩阵 U 和 V,因而最初的重要性指标公式变成如下模式:
对应算法框架图如下所示:
最终 PST 算法试验后果如下,咱们在 NLU(BERT、RoBERTa) 和 NLG(GPT-2)工作上与 magnitude pruning 和 movement pruning 进行比拟,在 90% 的稠密率下,PST 能够在大部分数据集上达到与之前算法相当的模型精度,然而仅需 1.5% 的训练参数。
PST 技术曾经集成在阿里云机器学习 PAI 的模型压缩库,以及 Alicemind 平台大模型稠密训练性能中。为阿里巴巴团体外部落地应用大模型带来了性能减速,在百亿大模型 PLUG 上,PST 相比于本来的稠密训练能够在模型精度不降落的状况下,减速 2.5 倍,内存占用缩小 10 倍。目前,阿里云机器学习 PAI 曾经被广泛应用于各行各业,提供 AI 开发全链路服务,实现企业自主可控的 AI 计划,全面晋升机器学习工程效率。
论文名字:Parameter-Efficient Sparsity for Large Language Models Fine-Tuning
论文作者:Yuchao Li , Fuli Luo , Chuanqi Tan , Mengdi Wang , Songfang Huang , Shen Li , Junjie Bai
论文 pdf 链接:https://arxiv.org/pdf/2205.11…
参考文献
[1] Song Han, Huizi Mao, and William J Dally. Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding.
[2] Victor Sanh, Thomas Wolf, and Alexander M Rush. Movement pruning: Adaptive sparsity by fine-tuning.
[3] Edward J Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen. Lora: Low-rank adaptation of large language models.
[4] Samet Oymak, Zalan Fabian, Mingchen Li, and Mahdi Soltanolkotabi. Generalization guarantees for neural networks via harnessing the low-rank structure of the jacobian.