710公海寰宇(中国)有限公司-首个千亿模型压缩算法 SparseGPT 来了,降低算力成本的同时保持高精度

作者 | 李梅
编纂 | 陈彩娴
自 2020 年 GPT-3 横空出生避世以来,ChatGPT 的爆火再一次将 GPT 家族的天生式年夜型语言模子带到聚光灯下,它们于各类使命中都已经显示出了强盛的机能。
但模子的重大范围也带来了计较成本的上升及部署难度的增长。
好比,GPT‑175B 模子共计至少占 320GB 半精度 (FP16) 格局的存储空间,于推理时,最少需要五个 80 GB 存储空间的 A100 GPU。
模子压缩(model compression)是当前利用较多的一种降低年夜模子计较成本的要领,但迄今为止,险些所有现有的 GPT 压缩要领都专注在量化(quantization),即降低单个权重的数值暗示的精度。
另外一种模子压缩要领是剪枝(pruning),即删除了收集元素,包括从单个权重(非布局化剪枝)到更高粒度的组件如权重矩阵的整行/列(布局化剪枝)。这类要领于视觉及较小范围的语言模子中颇有效,但会致使精度丧失,从而需要对于模子举行年夜量再练习来恢复精度,以是碰到 GPT 如许年夜范围的模子时,成本就又变患上过在昂贵了。虽然也有一些单次剪枝要领,无需从头练习便可压缩模子,但它们计较量太年夜,难以运用在具备数十亿参数的模子。
那末针对于 GPT-3 这类范围的年夜模子,有无一种要领可以或许对于其作切确的剪枝、同时连结最小的精度丧失且降低计较成本?
近日,来自奥地利科学技能研究所 (ISTA) 的两名研究职员 Elias Frantar 及 Dan Alistarh 互助了一项研究,初次针对于 100 至 1000 亿参数的模子范围,提出了切确的单次剪枝要领 SparseGPT。
论文地址:https://arxiv.org/pdf/2301.00774.pdfSparseGPT 可以将 GPT 系列模子单次剪枝到 50% 的稀少性,而无需任何从头练习。今朝最年夜的公然可用的 GPT-175B 模子,只需要利用单个 GPU 于几个小时内就能实现这类剪枝。
并且,SparseGPT 还有很正确,能将精度丧失降到最小。好比于今朝最年夜的开源模子 OPT‑175B 及 BLOOM‑176B 上履行SparseGPT 时,可以到达 60% 的稀少度,同时将精度丧失降到最小。
1SparseGPT 算法超年夜模子的研究近几年很是活跃,但到今朝为止,还有没有一个百亿参数以上的模子可以或许实现很是正确的高度稀少化。
现有要领对于计较成本的要求都太高,以今朝最正确的练习后要领 OBC 为例,对于在十亿参数模子,它需要 1 个小时以上的时间来举行压缩。已经知最快的练习后要领 AdaPrune 也需要几分钟来对于十亿参数模子举行剪枝,按此速率,GPT-3 范围的模子预计需要数百小时(几周)的计较。
年夜大都现有的剪枝要领如渐进幅度剪枝(gradual magnitude pruning),需要于剪枝步调落伍行年夜量的再练习以恢复正确性,而 GPT 范围的模子凡是需要年夜量的用在练习或者微调的计较量及参数调解量,这使患上基在再练习的要领难以运用。是以,于 GPT 范围上运用这类渐进的剪枝要领是行欠亨的。
ISTA 团队的这项事情提出了 SparseGPT 要领,可以实现几个小时内涵单个 GPU 上运行千亿以上参数的模子,而且充足正确,可将模子修剪到 50%-60% 的稀少度程度,而不会年夜幅度降低机能。
SparseGPT 的焦点是一种新的年夜范围类似稀少回归算法,它可以推广到半布局化(2:4 及 4:8)模式,而且与现有的权重量化要领兼容。

图注:SparseGPT 重修算法的可视化。给定一个固定的剪枝掩码 M,利用 Hessian 逆序列(HUj )并更新这些行中位在列“右边”的残剩权重,慢慢修剪权重矩阵 W 的每一一列中的权重处置惩罚。详细来讲,修剪后权重(深蓝⾊)“右边”的权重将被更新以赔偿修剪过错,而未修剪的权重不会天生更新(浅蓝⾊)。
年夜大都现有的剪枝要领如渐进幅度剪枝(gradual magnitude pruning),需要于剪枝步调落伍行年夜量的再练习以恢复正确性,而 GPT 范围的模子凡是需要年夜量的用在练习或者微调的计较量及参数调解量,这使患上基在再练习的要领难以运用。是以,于 GPT 范围上运用这类渐进的剪枝要领是行欠亨的。
SparseGPT 是针对于 GPT 范围模子的后练习(post-training)要领,由于它不履行任何微调。
今朝有很多量化 GPT 范围模子的后练习的要领,如 ZeroQuant、LLM.int8() 及 nuQ妹妹 等,但因为异样特性的存于,激活量化可能会很坚苦。GPTQ 使用类似二阶信息将权重切确量化到 2‑4 位,合用在最年夜的模子,并且当它与高效的 GPU 内核相联合时,可以带来2‑5 倍的推理加快。
但因为 GPTQ 偏重在稀少化而不是量化,是以 SparseGPT是对于量化要领的增补,两者可以联合运用。
别的,除了了非布局化修剪,SparseGPT 也合用在半布局化的模式,好比风行的 n:m 稀少格局,于 Ampere NVIDIA GPU 上可以 2:4 的比例实现加快。
2SparseGPT :
高稀少化程度,低精度丧失对于 SparseGPT 压缩模子的效果举行评估后,研究职员发明,年夜型语言模子举行稀少化的难度与模子巨细成比例,与已经有的幅度剪枝(Magnitude Pruning)要领比拟,利用 SparseGPT 可以或许实现更高的模子稀少化水平,同时连结最低限度的精度丧失。
研究职员于 PyTorch 上中实现了 SparseGPT,并利用 HuggingFace 的 Transformers 库来处置惩罚模子及数据集,而且都于具备 80GB 内存的单个 NVIDIA A100 GPU 长进行。于如许的试验前提下,SparseGPT 可以于约莫 4 小时内对于 1750 亿参数的模子实现彻底稀少化。
研究职员按挨次依次稀少 Transformer 层,这显著降低了内存需求,而且还有年夜年夜提高了并行处置惩罚所有层的正确性。所有的压缩试验都是一次性举行,没有任何微调。
评估对于象重要是 OPT 系列模子,包罗从 1.25 亿到 1750 亿参数的一套模子,利便不雅察剪枝相对于在模子巨细的缩放体现。此外还有阐发了 BLOOM 的 1760 亿参数变体。
于数据集及评估指标方面,试验采用了原始 WikiText2 测试集的困惑度来评估 SparseGPT 压缩要领的正确性,同时为了增长可注释性,还有利用了一些 ZeroShot 精度指标。别的,评估的重点于在稀少模子相对于在密集模子基线的正确性,而非绝对于数字。
研究职员对于 OPT 整个模子系列的所有线性层举行剪枝(不包括尺度的嵌入及头部),别离到达 50% 的非布局化稀少度、全 4:8 或者全 2:4 的半布局化稀少度,成果以下图。

图注:OPT 模子家族于原始 WikiText2 测试集的困惑度
可见,利用幅度剪枝来压缩的模子正确性于所有尺寸上都很糟糕糕,并且模子越年夜,正确度降落患上越厉害。
而利用 SparseGPT 来压缩的模子趋向差别,于 27 亿参数下,困惑度丧失 1 point,于 660 亿参数下则是零丧失。并且,与密集模子的基线比拟,于模子范围很是年夜的环境下精度甚至还有有所提高。
3较年夜的模子更易稀少化一个总的趋向是,较年夜的模子更易稀少化,于固定的稀少度程度下,稀少模子相对于在密集模子的相对于精度降落会跟着模子巨细的增长而缩小。作者推测这多是因为它们的参数化水平更高,整体上抗噪能力也更强。
比拟在密集模子基线,于最年夜范围下,利用 SparseGPT 将模子压缩至 4:8 及 2:4 稀少度时,困惑度增加别离仅为 0.11 及 0.39。如许的成果象征着,咱们可以于实践中实现 2 倍的加快,商用的 NVIDIA Ampere GPU 对于 2:4 的稀少度已经经有了撑持。
作者研究了 OPT-175B 及 BLOOM-176B 两个千亿模子的机能与利用 SparseGPT 带来的稀少水平之间的瓜葛,成果下图所示。

图注:左图为别离利用 SparseGPT 及幅度剪枝将 OPT-175B 同一压缩至差别稀少程度。右图为利用 SparseGPT 将整个 OPT 模子系列压缩至差别的稀少程度。
可以看到,对于在 OPT-175B 模子,幅度剪枝至多可以实现 10% 的稀少度,紧接着就会有较年夜的精度丧失。而 SparseGPT 于困惑度增长的下还有能实现 60% 的稀少度。

图注:左图为别离利用 SparseGPT 及幅度剪枝将 BLOOM-176B 同一压缩至差别稀少程度。右图为于 OPT 家族模子上 50% 稀少度 + 4 bit 量化结合压缩 与 3-bit 的对于比。
对于在 BLOOM-176B 模子,只管幅度剪枝可以到达 30% 的稀少度而没有显著的精度丧失,但比拟之下,SparseGPT 可以实现 50% 的稀少度,即 1.66 倍的晋升。并且,于 80% 的稀少度下,利用 SparseGPT 压缩的模子的困惑度仍旧连结于合理程度,但幅度剪枝于到达 OPT 的 40% 稀少度及 BLOOM 的 60% 稀少度时,困惑度就已经经 100。
别的,SparseGPT 可以或许从这些模子中移除了约莫 1000 亿个权重,对于模子正确性的影响有限。
末了总结一下,该研究初次注解,基在 Transformer 的年夜范围预练习模子可以经由过程一次性权重建剪压缩到高稀少性,无需任何再练习,精度丧失也很低。
值患上留意的是,SparseGPT 的要领是局部的:于每一个修剪步调以后,它城市履行权重更新,旨于保留每一一层的输入输出瓜葛,这些更新是于没有任何全局梯度信息的环境下计较的。是以,年夜范围 GPT 模子的高度参数化好像使这类要领可以或许直接辨认密集预练习模子“近邻”中的稀少切确模子。
别的,因为试验所采用的的正确度指标(困惑度)很是敏感,是以天生的稀少模子输出好像与密集模子的输出紧密亲密相干。
这项研究于减缓年夜模子的算力限定方面具备很年夜的踊跃意义,未来的一个事情标的目的是研究年夜模子的微调机制来进一步恢复精度,同时,扩展 SparseGPT 的要领于模子练习时期的合用性,将会削减练习年夜模子的计较成本。
更多内容,点击下方存眷:

未经「AI科技评论」授权,严禁以任何方式于网页、论坛、社区举行转载!
公家号转载请先于「AI科技评论」后台留言取患上授权,转载时需标注来历并插入本公家号手刺。
雷峰网(公家号:雷峰网)
雷峰网版权文章,未经授权禁止转载。详情见转载须知。





