摘要:近期,苹果公司等科技巨头对小型语言模型(SLMs)产生了浓厚兴趣。这些模型因高效性和在计算资源方面的低需求,在多种应用场景中展现出巨大潜力,特别是在设备端、移动设备和边缘设备等资源受限的环境中。本文旨在全面综述小型语言模型,深入探讨其架构、训练技术和模型压缩方
近期,苹果公司等科技巨头对小型语言模型(SLMs)产生了浓厚兴趣。这些模型因高效性和在计算资源方面的低需求,在多种应用场景中展现出巨大潜力,特别是在设备端、移动设备和边缘设备等资源受限的环境中。本文旨在全面综述小型语言模型,深入探讨其架构、训练技术和模型压缩方法。
1、引言
尽管大型语言模型(LLMs)在各类基准测试和现实应用中表现出色,但其成功伴随着高昂的成本。LLMs的训练和运行需要密集的计算和数据资源,通常依赖于集中化和专业化的硬件。为了应对这些挑战,小型语言模型(SLMs)逐渐成为研究热点。SLMs旨在保持LLMs的准确性和/或适应性,同时满足特定的约束条件,如硬件限制、数据可用性、带宽或生成时间。通过提升在这些约束条件下的性能,SLMs有助于实现隐私保护、成本节约以及在消费级设备上的运行。
然而,综述小型语言模型的难点在于“小型”和“大型”的定义随时间和上下文而变化。例如,GPT-2在2019年作为拥有15亿参数的“大型语言模型”推出,如今已比许多所谓的“小型”语言模型要小。尽管模型规模不断变化,但SLMs的训练目标相对稳定。
本文综述了支持构建和推理小型语言模型的架构、训练和压缩技术,并总结了评估SLMs性能的基准数据集和常用指标。我们提出了一个新的分类法,用于根据技术类型和优化的约束条件组织这些方法。
2、模型架构
本节探讨了开发小型语言模型(SLMs)的架构设计,包括轻量化架构、高效自注意力近似以及神经架构搜索。
2.1 轻量化架构
轻量化语言模型架构通过减少参数量和计算开销实现高效性能,非常适合在资源受限的设备上部署。代表性轻量化模型通常采用编码器或解码器架构。
轻量化编码器架构大多基于BERT(Devlin等人,2019)的优化版本。例如,MobileBERT(Sun等人,2020)引入倒瓶颈结构,在自注意力和前馈网络之间保持平衡,实现了显著的尺寸缩减和速度提升。DistilBERT(Sanh,2019)和TinyBERT(Jiao等人,2019)也实现了类似的优化。
轻量化解码器架构遵循自回归语言模型的结构,如GPT(Radford等人,2018,2019)和LLaMA系列(Touvron等人,2023b)。这些模型强调知识蒸馏、内存开销优化、参数共享和嵌入共享,以增强效率和可扩展性。例如,BabyLLaMA(Timiryasov和Tastet,2023a)和BabyLLaMA-2(Tastet和Timiryasov,2024)通过知识蒸馏技术,在数据受限的情况下实现了超越教师模型的性能。
2.2 高效自注意力近似
大型语言模型的一个挑战是自注意力层中的庞大参数量和计算成本。本节讨论了降低这些成本的策略,对构建小型语言模型至关重要。
Reformer(Kitaev等人,2020)通过局部敏感哈希降低自注意力的复杂度,从O(N²)降低到O(N log N)。Roy等人(2021)使用基于在线k-means聚类的稀疏路由模块,减少注意力计算的复杂性。
多项研究(Wang等人,2020a;Katharopoulos等人,2020;Xiong等人,2021;Beltagy等人,2020)提出了线性注意力机制,进一步将自注意力层的计算复杂度降低到O(N)。特别是,Katharopoulos等人(2020)将自注意力表示为核特征映射的线性点积,降低了二次复杂度,并展示了采用这种机制的Transformer可以实现更快的推理。
此外,Longformer(Beltagy等人,2020)结合了局部窗口注意力和任务特定的全局注意力,实现了内存效率。Wang等人(2020a)使用低秩矩阵近似自注意力机制,降低了复杂度。这些研究表明,线性自注意力Transformer在多种下游任务中的表现与原始自注意力机制相匹配。
2.3 神经架构搜索技术
本节讨论了用于发现适合特定任务和硬件约束的高效模型架构的自动化方法。
先前的研究主要集中在视觉任务的神经架构搜索(NAS)(Tan和Le,2019;Zoph和Le,2016;Wu等人,2019;Guo等人,2020)以及BERT模型的NAS(Xu等人,2021;Jawahar等人,2023;Ganesan等人,2021)。然而,对于具有超过十亿参数的大型语言模型,寻找更小、更高效的模型面临显著挑战。MobileLLM(Liu等人,2024e)研究了模型深度和宽度对性能的影响,在数百万参数范围内进行了针对性架构搜索。Shen等人(2024c)通过探索合适的初始化来减少搜索空间,加快了搜索过程的收敛。
2.4 小型多模态模型
近年来,大型多模态模型(LMMs)在显著减少参数量的同时,达到了与前代模型相当甚至更优的性能。这得益于更高效的小型语言模型,如Gemma(Team等人,2024)和phi-3-mini(Abdin等人,2024),以及精心策划的数据集。
此外,人们还努力在多模态融合过程中缩减视觉编码器的规模。例如,InternVL2利用大规模视觉编码器的中间层输出,同时丢弃后续模块。更小的模型,如PaliGemma(Beyer等人,2024)和Mini-Gemini(Li等人,2024c),采用了轻量级的视觉编码器。单体多模态模型进一步推进了这一点,完全消除了视觉编码器,转而使用轻量级架构生成视觉token。
3、训练技术
本节回顾了用于语言模型预训练和微调的关键训练技术。虽然小型语言模型(SLMs)与大型语言模型(LLMs)采用类似的训练方法,但我们将重点介绍在有限资源情况下促进SLMs学习的高效技术。
3.1 预训练技术
混合精度训练是提升SLMs和LLMs预训练效率的关键技术。该方法利用低精度表示进行前向和后向传播,同时保持高精度的权重更新。例如,Micikevicius等人(2018)引入了自动混合精度(AMP),该方法初始时使用32位浮点(FP32)精度保存权重的主副本,而在进行算术运算时使用16位浮点(FP16)精度。然而,近期的研究(Rae等人,2021)观察到,由于FP16的数值范围有限,AMP在某些情况下会导致精度损失。为了解决这一问题,Burgess等人(2019)提出了大脑浮点(BFLOAT16),该格式具有比FP16更多的指数位,提供了更大的动态范围。BFLOAT16在训练性能和表示精度方面优于FP16。
现代GPU架构通过专用的Tensor Cores进一步增强了混合精度功能。例如,NVIDIA的最新Hopper架构引入了对8位浮点(FP8)精度的支持,为大规模语言模型带来了更高的计算效率。为了进一步提升训练效率并防止模型崩溃,采用了各种优化和稳定技术。虽然Adam(Diederik,2014)和AdamW(Loshchilov和Hutter,2019)优化器广泛使用,但内存高效的变体如Adafactor(Shazeer和Stern,2018)和Sophia(Liu等人,2024b)被引入以提高训练速度和效率。为进一步稳定训练,梯度裁剪(Zhang等人,2020)被广泛应用,以防止梯度爆炸。此外,仔细的初始化策略可以为模型训练提供良好的起点。
为了应对预训练阶段的计算需求,语言模型通常在多个计算节点上进行预训练,利用分布式计算资源实现高效训练。为此,开发了多种系统级优化技术。零冗余数据并行(ZeRO)(Rajbhandari等人,2020)提供了三种渐进式的优化阶段,每个阶段都将更多的训练状态分布到设备上。PyTorch的全分片数据并行(FSDP)(Zhao等人,2023b)也实现了类似的概念。这些并行技术允许使用更大的批量尺寸进行训练,大大提高了SLMs和LLMs的效率和可扩展性。
3.2 微调技术
在较小的特定任务数据集上进行微调,允许LLMs利用预训练中获得的知识,从而在特定任务或领域中表现出色。微调技术旨在解决计算资源有限、数据质量、可用性和鲁棒性等挑战,确保能够有效地适应新任务而无需进行广泛的再训练。
3.2.1 参数高效微调
参数高效微调(PEFT)仅更新一小部分参数或添加轻量级模块,同时保持大部分预训练模型的参数不变。这种方法减少了SLM微调时的计算成本,保留了模型的知识,减少了过拟合,并提高了灵活性。例如,LoRA(Hu等人,2021)使用低秩分解,Prompt Tuning(Lester等人,2021)在输入中插入可学习的提示,而Llama-Adapter(Zhang等人,2023b;Gao等人,2023)将提示添加到LLaMA的注意力块中。动态适配器(Kong等人,2024;Feng等人,2024;Gou等人,2023;Liu等人,2023b;Luo等人,2024b)自动将多个适配器组合为专家混合模型,支持多任务处理并防止遗忘。
参数高效微调(PEFT)的各种方法不仅简化了模型调整过程,还增强了模型的适应性和泛化能力。以下是对提及方法的进一步补充和解释:
LoRA(Low-Rank Adaptation):LoRA方法通过在预训练模型的基础上引入可训练的低秩矩阵来减少需要调整的参数量。这种方法的核心思想是利用低秩分解来近似全秩参数更新,从而在不显著影响模型性能的情况下,大幅度减少微调所需的计算资源和存储需求。LoRA的优势在于其高效性和灵活性,特别适用于资源受限的场景,如边缘计算和移动设备应用。Prompt Tuning:Prompt Tuning通过在输入序列中添加一系列可学习的“提示词”(prompts)来调整模型的行为。这些提示词在训练过程中被优化,以引导模型生成符合特定任务要求的输出。这种方法的好处是它保留了预训练模型的大部分知识,同时通过微调提示词来适应新任务,减少了过拟合的风险。Llama-Adapter:Llama-Adapter是针对大型语言模型(如LLaMA)设计的轻量级模块,它将提示机制嵌入到模型的注意力块中。这种方法不仅减少了需要调整的参数量,还提高了模型对特定任务的适应性。通过在注意力机制中引入可训练的提示信息,Llama-Adapter能够在保持模型整体结构不变的情况下,实现对不同任务的灵活处理。动态适配器(Dynamic Adapters):动态适配器方法进一步扩展了适配器的概念,通过自动组合多个适配器来构建一个专家混合模型。这种模型能够根据不同任务的需求动态地选择和使用不同的适配器。这种方法的优势在于其多任务处理能力和防止遗忘的能力。通过动态地选择和组合适配器,模型能够在处理多个任务时保持高性能,同时避免在训练新任务时忘记旧任务的知识。其他相关方法:除了上述方法外,还有许多其他参数高效微调的方法,如前缀调优(Prefix Tuning)、软提示(Soft Prompt)等。这些方法都致力于在保持预训练模型大部分知识的同时,通过微调一小部分参数来适应新任务。这些方法的应用场景广泛,包括自然语言理解、文本生成、图像识别等多个领域。通过结合不同的PEFT方法,可以进一步提高模型的性能和适应性。综上所述,参数高效微调(PEFT)为大型预训练模型的微调提供了高效、灵活且经济的解决方案。通过仅更新一小部分参数或添加轻量级模块,PEFT方法不仅减少了计算成本,还保留了模型的知识,提高了模型的适应性和泛化能力。随着技术的不断发展,未来将有更多创新的PEFT方法涌现,为人工智能领域带来更多的可能性。
语言模型的知识蒸馏面临一项挑战:当(1)教师和学生语言模型共享同一分词器,并且(2)能够获取教师模型的预训练数据时,蒸馏策略才能达到最佳效果。针对这一问题,Boizard等人(2024)提出了一种创新的解决方案,即引入基于最优传输理论的通用logit蒸馏损失。此外,蒸馏技术常常与剪枝方法相结合,旨在构建更小巧的语言模型。例如,Sreenivas等人(2024)和Muralidharan等人(2024)的研究表明,通过对大型语言模型进行剪枝,并结合蒸馏损失进行迭代重训练,可以生成性能卓越的小型模型。
最近的进展超越了传统的标签蒸馏方法,通过在蒸馏过程中融入额外的监督信息来打造小型语言模型。Hsieh等人(2023)的研究发现,利用“推理依据”作为蒸馏过程中的额外监督源,可以显著提升蒸馏的效率。他们的实验结果显示,蒸馏后的模型在自然语言推理(NLI)、常识问答和算术推理等基准测试上的表现甚至超过了大型语言模型。同样地,Dai等人(2024)、Magister等人(2023)、Ho等人(2023)和Fu等人(2023)的研究也表明,将大型语言模型中的推理链与标签信息一并蒸馏到小型模型中,可以显著提升小型模型在算术、多步数学、符号推理和常识推理等方面的能力。
在语言模型的知识蒸馏领域,一项核心挑战在于如何确保当(1)教师模型与学生模型共享相同的分词器,且(2)教师模型的预训练数据触手可及之时,蒸馏策略方能发挥出最佳效能。针对这一难题,Boizard等人(2024)巧妙引入了基于最优传输理论的通用logit蒸馏损式,为问题的解决提供了全新的视角。此外,蒸馏技术与剪枝方法的深度融合,正成为构建高效小型语言模型的重要途径。Sreenivas等人(2024)与Muralidharan等人(2024)的杰出研究,通过精心设计的剪枝策略与迭代重训练过程,结合蒸馏损失,成功打造出了性能卓越的小型模型,为语言模型的轻量化发展开辟了新路径。
近年来,蒸馏技术的研究进展已远远超越了传统的标签蒸馏范畴,转而探索在蒸馏过程中融入更多元化的监督信息,以进一步推动小型语言模型的性能提升。Hsieh等人(2023)的开创性研究,通过引入“推理依据”作为额外的监督源,显著提升了蒸馏过程的样本效率,使得蒸馏后的模型在自然语言推理、常识问答及算术推理等基准测试中展现出了非凡的实力,甚至在某些场景下超越了大型语言模型的表现。与此同时,Dai等人(2024)、Magister等人(2023)、Ho等人(2023)以及Fu等人(2023)的研究也充分证明了,将大型语言模型中的推理链与标签信息深度融合,并一同蒸馏至小型模型中,可以显著提升小型模型在算术、多步数学、符号推理以及常识推理等多个领域的表现,为小型语言模型的智能化发展注入了新的活力。
综上所述,小型语言模型(SLMs)以其高效性与广泛的应用前景,正逐渐成为自然语言处理领域的研究热点。本文全面综述了SLMs的模型架构、训练技术及其模型压缩技术,并提出了一种直观的SLM评估指标分类法,深入剖析了SLMs在不同场景与应用中的重要性。同时,本文还总结了用于SLMs训练与评估的基准数据集,并指出了当前SLMs领域亟待解决的基本挑战与开放性问题。我们衷心希望,这篇综述能够成为研究人员与从业者的宝贵参考,为推动小型但功能强大的语言模型的进一步发展贡献一份力量。
华远系统是致力于人工智能(AI算法以及流媒体技术),信息软件技术,新能源、物联网等领域的集成商,在智慧社区,智慧园区,智慧停车,充电桩(储能充电站/光储充)及充电桩软件管理平台,储能系统集成,车联网有整套解决方案以及成功的项目案例。
来源:华远系统