本文主要是介绍LLM 模型压缩之三: FoldGPT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
0. 资源链接
-
论文: FoldGPT: Simple and Effective Large Language Model Compression Scheme
-
项目: to be released.
1. 背景动机
现有的大语言模型推理存在以下问题:
-
LLM 模型因为有大量的参数,以及 next token 的预测方式,导致 LLM 模型推理慢,计算消耗大。
-
模型压缩,量化和蒸馏等技术用来加速 LLM 模型推理;以及目前有许多端侧 LLM 推理的需求对大模型推理时延很高,需要尽可能降低 LLM 的推理时延,目前的加速技术仍然存在挑战。
-
目前压缩模型技术主要分析,剪枝模型宽度存在的冗余性,但是模型的finetune 仍然需要消耗较多算力。
-
目前有一些工作如 ShortGPT 等工作发现 LLM 在深度存在冗余计算,在深度剪枝取得不错的效果。
2. 内容提要
-
本文分析了LLM blocks 输出的值的相似度,发现在深度维度上存在大量冗余。
-
本文提出一个叫做 FoldGPT 方法,主要由模块去除和模块共享技术。
-
本文设计一种可学习的重要度度量来对 LLM block 重要性排序,用于去除不重要模块。
-
本文通过大量实验验证了 FoldGPT 的有效性,在不少模型上取得 SOTA 压缩效果。
3. 技术细节
FoldGPT 包含4个主要部分:Redundancy analysis,Gated block removal,Grouped parameter sharing 和 Distillation fine-tuning。
3.1 Redundancy analysis
通过分析 block 输入输出的相似度,可以发现不同 model 都存在深度的冗余性。
3.2 Gated block removal
-
由于之前 ShortGPT BI score 方法忽略模块之间的影响,所以不能找到全局最优的模块去除策略。
-
本文通过引入学习的门控系数来学习模块之间去除影响重要性。
-
通过实验对比发现 FoldGPT 效果要远好于 ShortGPT BI score。
3.3 Grouped parameter sharing
-
通过 group方式,让group 内的block share weights,为了保持精度,增加少量可学习参数来微调模型。
3.4 Distillation fine-tuning
-
通过 Lora 微调提高精度。
4. 实验结果
-
FoldGPT 效果要好于 ShortGPT,同时通过 finetune 压缩效果会更好。
5. 一些思考
-
FoldGPT 针对 ShortGPT BI score 存在的问题,提出可学习的 Gated block score 来找出 less import blocks。
-
通过参数共享和微调的技术进一步提高模型推理速度。
这篇关于LLM 模型压缩之三: FoldGPT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!