SliceGPT: Compress Large Language Models by Deleting Rows and Columns

2024年01月26日
  • 简介
    大型语言模型已成为自然语言处理的基石,但它们的使用在计算和内存资源方面具有相当大的成本。稀疏化提供了缓解这些资源限制的解决方案,最近的研究表明,训练好的模型可以事后进行稀疏化。现有的稀疏化技术面临挑战,因为它们需要额外的数据结构,并且在当前硬件条件下提供有限的加速。在本文中,我们提出了SliceGPT,一种新的事后训练稀疏化方案,它将每个权重矩阵替换为一个更小的(密集)矩阵,从而减少网络的嵌入维度。通过广泛的实验,我们展示了SliceGPT可以在保持稠密模型的99%、99%和90%的零-shot任务性能的同时,对LLAMA2-70B、OPT 66B和Phi-2模型的模型参数(包括嵌入)进行高达25%的削减。我们的切片模型在更少的GPU上运行并且运行速度更快,而无需任何额外的代码优化:在24GB消费级GPU上,我们将LLAMA2-70B的推断总计算量减少到稠密模型的64%;在40GB的A100 GPU上,我们将其减少到66%。我们提供了一个新的见解,即Transformer网络中的计算不变性,它使得SliceGPT成为可能,并希望它将激发和启示未来降低预训练模型的内存和计算需求的方法。代码可在以下网址获得:https://github.com/microsoft/TransformerCompression。
  • 图表
  • 解决问题
    本文旨在解决大型语言模型的计算和内存资源消耗的问题,提出了一种新的后训练稀疏化方案。
  • 关键思路
    SliceGPT方案通过将每个权重矩阵替换为一个更小的(密集)矩阵,从而减少网络的嵌入维度,实现了模型参数减少25%的效果,并且在保持较高任务性能的同时,减少了计算和内存资源的消耗。
  • 其它亮点
    实验结果表明,SliceGPT方案可以在不进行额外代码优化的情况下,在较少的GPU上运行得更快,同时减少了计算和内存资源的消耗。此外,论文提出了变压器网络中的计算不变性的新见解,为未来减少预训练模型的内存和计算需求提供了新思路。作者还提供了开源代码。
  • 相关研究
    在最近的相关研究中,也有一些关于语言模型稀疏化的研究,例如《Structured Dropout》、《Sparse Transformer》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论