SliceGPT:微软开发的一种新型的大语言模型压缩方法

SLICEGPT能够在保持99%,99%,和90%零样本任务性能的同时,将LLAMA2-70B、OPT 66B和Phi-2模型分别去除高达25%的模型参数(包括嵌入)。

使用SLICE GPT的模型可以在更少的GPU上运行,并且运行速度更快,无需任何额外的代码优化。

在24GB的消费级GPU上,将LLAMA2-70B的总计算量减少到密集模型的64%;在40GB的A100 GPU上减少到66%。

主要特点:

SLICE GPT解决了大语言模型在存储和计算资源上的高需求问题。

提供了一种有效减轻这些资源需求的方法,同时保持或仅轻微牺牲模型性能,这对于推广大型模型的应用和降低运行成本具有重要意义。

1、减少模型尺寸:通过在不损失显著性能的前提下,减少模型参数数量,SLICE GPT能够减少大型语言模型的尺寸。这一点通过删除权重矩阵中的行和列来实现,从而减少了模型的存储需求。

2、提高计算效率:通过减少模型尺寸,SLICE GPT同样提高了模型在硬件上的运行效率,减少了所需的计算资源。这使得大型模型能够在较小或者更少的硬件资源上运行,提高了模型的可用性。

3、保持模型性能:SLICE GPT采用的稀疏化方法能够在去除一定比例的模型参数的同时,保持模型的性能。这是通过精心设计的稀疏化策略来实现的,确保了重要的信息和模型的学习能力不会因为参数的减少而受损。

4、灵活性:SLICE GPT不仅适用于特定的模型或架构,它的方法可以广泛应用于各种变换器网络模型,包括但不限于LLAMA2-70B、OPT 66B和Phi-2等模型。

工作原理:

SLICE GPT的工作原理基于一种新的后训练稀疏化方案,这种方案通过两个关键步骤来减少大型语言模型的计算和内存需求:

1、替换权重矩阵:它将模型中的每个权重矩阵替换为一个更小的(密集的)矩阵。这一步骤通过减少网络的嵌入维度,有效地缩减了模型的大小。

2、维持计算不变性:SLICE GPT引入了变换器网络中的“计算不变性”概念。这意味着,可以通过特定的变换操作,改变权重矩阵的形状,而不改变其在模型中的功能和影响。具体来说,就是通过删除或减少转换后权重矩阵的行或列,达到减少模型参数的目的,同时保持模型的性能。

这种方法的核心优势在于,它允许模型在去除一定比例的参数后,仍然能够保持接近原始模型的性能。这样,模型就可以在较低的资源需求下运行,同时减少了运行时的计算负担和内存使用。这对于在资源受限的设备上部署大型模型特别有价值,比如普通的个人电脑或者移动设备。

论文:https://arxiv.org/abs/2401.15024

微海报