大语言模型时代的小语言模型综述:技术、增强、应用、与大语言模型协作以及可信度
作者:王发力,王苏杭
摘要:大型语言模型(LLMs)在各种任务中表现出色,但由于其巨大的参数规模和高计算需求,面临时间和计算成本的挑战。因此,小型语言模型(SLMs)以其低延迟、成本效益高和易于定制等优势,在资源受限的环境中以及获取领域特定知识方面变得越来越受欢迎。我们对小型语言模型的技术、增强方法、应用、与LLMs的协作以及可信度进行了详细调查。我们还探讨了未来的研究方向,并在GitHub上发布了相关模型和文章列表:https://github.com/FairyFali/SLMs-Survey。
调查报告链接:https://arxiv.org/abs/2411.03350
大型语言模型的挑战
神经语言模型(LMs)显著提升了自然语言处理能力,从BERT的预训练和微调范式,发展到T5的带提示预训练,最终到GPT-3的上下文学习。ChatGPT和Llama等模型在扩展到大型数据集和模型尺寸时表现出“涌现能力”,推动了NLP在编程、推荐系统和医疗问答等领域的应用。
尽管大型语言模型在复杂任务中表现出色,但其庞大的参数规模和计算需求限制了它们在本地部署或将其限制在基于云的调用中。这带来了多项挑战:
- 大型语言模型对GPU内存和计算成本要求很高,通常只能通过云API部署,这要求用户上传数据进行查询,可能导致数据泄露和隐私问题,特别是在医疗、金融和电子商务等敏感领域。
- 在移动设备上使用基于云的大型语言模型面临云延迟问题,而由于高参数和缓存需求超出标准设备的性能,直接部署是不切实际的。
- 大型语言模型参数量巨大,可能导致推理延迟从几秒到几分钟不等,使其不适用于实时应用。
- 大型语言模型在医疗和法律等专业领域表现不佳,需要高成本的微调来提高性能。
- 尽管通用大型语言模型功能强大,但许多应用程序和任务只需要特定功能和知识,这使得部署大型语言模型可能造成浪费,且不如专用小型模型有效。
小型语言模型的优势
最近,小型语言模型(SLMs)展示出与大型语言模型(LLMs)相当的性能,同时在效率、成本、灵活性和定制方面具有优势。由于参数较少,SLMs在预训练和推理过程中节省了大量计算资源,减少了内存和存储需求,特别适用于资源受限的环境和低功耗设备。因此,SLMs作为LLMs的替代方案越来越受到关注。如图2所示,SLMs在Hugging Face社区的下载频率现已超过大型模型,图3展示了SLM版本随时间的普及程度。
图2 Hugging Face上各种模型尺寸大型语言模型上月下载统计(截至2024年10月7日)
小型语言模型的定义
通常,具有涌现能力的语言模型被归类为大型语言模型(LLMs)。然而,对于小型语言模型(SLMs)并没有统一的定义。一些研究认为SLMs的参数少于10亿,并且通常在移动设备上配备约6GB内存;而另一些则认为SLMs可以拥有多达100亿参数,但这些模型通常缺乏涌现能力。考虑到SLMs在资源受限环境和特定任务中的应用,我们提出一个广义定义:SLMs的参数范围应介于能够为特定任务展示涌现能力的最小尺寸和资源受限下可管理的最小尺寸之间。此定义旨在整合不同观点,并考虑与移动计算和能力阈值相关的因素。
小型语言模型的增强
在大语言模型时代,小型语言模型(SLMs)的增强方法有所不同,包括从头训练SLMs,通过有监督微调(SFT)确保SLMs遵循指令,先进的知识蒸馏和量化技术,以及LLMs中常用以提升SLMs在特定应用中性能的技术。我们详细描述了一些代表性方法,包括带有参数共享的模型架构(在从头训练子章节3.1中讨论),从人类反馈中优化偏好(在有监督微调子章节3.2中介绍),知识蒸馏中的数据质量(章节3.3),蒸馏过程中的分布一致性(章节3.4),训练后量化和量化感知训练技术(章节3.5),以及使用RAG和MoE方法增强SLMs(章节3.6)。本章未来的方向将探讨能够提升性能同时减少计算需求的模型架构,例如Mamba。
小型语言模型的应用
由于其增强隐私和降低内存需求的特性,许多自然语言处理任务已开始采用小型语言模型(SLMs),并利用专门技术来提升其在特定任务中的性能(参见第4.1节),例如问答、代码生成、推荐系统和移动设备上的自动化任务。代表性应用包括移动设备上的任务自动化,其中SLMs充当智能代理,调用必要的API,或根据智能手机UI页面自动完成给定的操作命令(参见第4.1.5节)。
此外,部署小型语言模型通常需要考虑内存和运行时效率,这对于资源受限的边缘设备,尤其是智能手机至关重要(参见第4.2节)。内存效率主要体现在小型语言模型及其缓存的存储占用上,我们研究了压缩小型语言模型及其缓存的方法(参见第4.2.1节)。运行时效率涉及小型语言模型参数的大小和切换成本,例如RAM和GPU内存之间的转换(参见第4.2.2节),这促使我们探索减少MoE切换时间并降低分布式小型语言模型延迟的策略。
未来的研究方向包括利用LoRA为不同用户提供个性化服务,识别SLMs中的固有知识,以及确定有效微调所需的最小数据量(更多未来方向请参见第8节)。
现有小型语言模型
我们总结了当前具有代表性的小型语言模型(参见图3),包括适用于通用和特定领域且参数少于70亿的模型。本文详细介绍了这些小型语言模型的获取方法、使用数据集和评估任务,并讨论了通过压缩、微调或从头训练等技术获取小型语言模型的策略。通过对各种技术的统计分析,我们确定了获取通用小型语言模型常用的技术,包括GQA、Gated FFN、SiLU激活函数、RMS正则化、深层薄型模型架构和嵌入优化(参见第5.1节)。领域专用小型语言模型,例如用于科学、医疗和法律的,通常通过对大型模型生成的监督领域数据进行指令微调或通过领域数据的持续训练来获取(参见第5.2节)。未来的研究方向将包括在法律、金融、教育、电信和交通等关键领域开发专业的小型语言模型。
小型语言模型对大型语言模型的辅助
由于小型语言模型(SLMs)具有高运行时效率和与大型语言模型(LLMs)相似的行为模式,SLMs可以作为代理快速为LLMs获取先验知识,从而增强其功能。这包括减少推理延迟、微调时间、改善检索过程中的噪声过滤、增强次优的零样本性能、降低版权侵权风险以及优化评估难度。
在第6节中,我们探讨了以下五个方面:(i) SLMs协助LLMs实现可靠生成:例如,利用SLMs评估LLMs输出的置信度,或基于LLMs的内部状态探索幻觉分数。有关可靠生成、增强LLMs推理能力、改进LLMs检索增强生成(RAG)以及减轻LLMs输出中版权和隐私问题的详细方法,请参阅完整论文。(ii) SLMs协助提取LLM提示:对抗性方法利用SLMs反向提取输出提示。(iii) SLMs支持LLM微调:SLMs微调参数的差异可以模拟LLM参数的演变,从而实现LLMs的高效微调。(iv) SLMs支持LLM在特定任务中的性能:定制的SLMs在某些特定任务中可能优于LLMs,但在困难样本中可能表现不佳;因此,SLMs和LLMs之间的协作可以在特定任务中实现卓越性能。(v) SLMs评估LLMs:经过微调后,SLMs可以作为评估器来评估LLMs生成的更自由格式的内容。
未来的方向包括利用SLMs作为代理,探索LLMs的更多行为,例如优化提示、评估缺失知识和评估数据质量。更多信息请参见原文第8章中讨论的未来工作。
小型语言模型的可信度
语言模型已成为我们日常生活中不可或缺的一部分,我们对其的依赖性持续增加。然而,由于隐私、公平性等信任维度上的限制,它们也带来了一定的风险。因此,许多研究致力于评估语言模型的可信度。尽管当前研究主要集中在大型语言模型(LLMs)上,但在第7节中,我们将关注参数在70亿或更少的模型,并检查五个关键信任场景:鲁棒性、隐私、可靠性、安全性与公平性,具体如图4所示。在鲁棒性方面,我们讨论了对抗性鲁棒性和分布外鲁棒性;在安全性方面,我们主要分析了错误信息和毒性问题;在可靠性领域,我们主要关注幻觉和趋炎附势。然而,大多数现有研究集中在至少70亿参数的模型上,对小型语言模型(SLMs)可信度的全面分析存在空白。因此,系统评估SLMs的可信度并了解其在各种应用中的表现是未来研究的重要方向。
结论
随着对小型语言模型(SLMs)的需求增长,当前研究文献涵盖了SLMs的各个方面,包括针对特定应用优化的训练技术,例如量化感知训练和选择性架构组件选择。尽管SLMs的性能得到认可,但潜在的信任问题,如幻觉和隐私泄露的风险,仍需关注。目前,缺乏在大语言模型(LLMs)时代全面探讨SLMs这些方面的综合性调查。本文旨在提供一份深入的调查,分析LLMs时代SLMs的各个方面及其未来发展。欲了解更多详情,请参阅我们的完整论文。