现在我们对大模型的研究逐渐转向了“降耗增效”,通过结合高性能低耗资的小模型,实现更高效的计算和内存利用,达到满足特定场景的需求、降低成本和提高效率、提升系统性能以及增强适应性和扩展性的目的。
那么如何将大模型与小模型结合?
目前较常用的策略有模型压缩(蒸馏、剪枝)、提示语压缩、联合推理、迁移学习、权值共享、集成学习等。咱们今天就来简单聊聊这8种策略。
部分策略的具体步骤以及每种策略相关的参考论文我也放上了,方便同学们理解学习。
论文原文以及开源代码需要的同学看文末
一、模型压缩
模型压缩是一种策略,旨在将复杂的大模型转化为计算效率更高、资源消耗更少的小模型。这种策略主要通过知识蒸馏、轻量化模型架构、剪枝和量化等方法实现。
「参考论文:」
An Evaluation of Model Compression & Optimization Combinations
模型压缩和优化组合的评估
「简述:」本文旨在探索模型压缩领域的各种可能性,讨论不同级别的剪枝和量化的组合效率,并提出一种质量测量指标,以客观地决定哪种组合在最小化准确性差异和最大化大小减小因子方面最佳。
知识蒸馏
知识蒸馏是其中一种常用的压缩技术,它通过让小模型去拟合大模型,使小模型学习到与大模型相似的函数映射,从而达到模拟大模型性能的目的。
具体步骤:
-
首先需要一个性能优秀的大模型作为教师模型,让其学习数据并产生预测结果;
-
然后将这个大模型的输出概率向量作为软目标,称之为“soft targets”;
-
接着训练一个小模型,我们称其为学生模型,让学生模型去尽量拟合这些软目标;
-
最后在一些验证集或者测试集上评估学生模型的性能。
「参考论文:」
Distilling the Knowledge in aNeural Network
提取神经网络中的知识
「简述:」一种简单的方法是训练多个不同的模型,然后平均它们的预测结果来提高机器学习算法的性能。然而,使用整个模型集合进行预测可能会变得繁琐和计算密集。Caruana和他的合作者提出了将知识压缩到一个单一模型中的方法,这种方法更容易部署。他们通过将模型集合的知识蒸馏到一个单一模型中,显著提高了商用系统的声学模型性能。他们还引入了一种由完整模型和专家模型组成的新型集成方法,这些专家模型可以快速并行地训练,用于区分完整模型混淆的细粒度类别。
Alpaca: A Strong, Replicable Instruction-Following Model
一种强大的、可重复的指令遵循模型
「简述:」论文介绍了Alpaca 7B,这是一个从52K指令跟随演示中微调的LLaMA 7B模型。根据作者对单轮指令跟随的初步评估,Alpaca在质量上与OpenAI的text-davinci-003相似,同时令人惊讶的是它很小且易于/便宜复制(<600)。