**大语言模型(LLM)在文本生成、问答和推理等任务中展现了突现能力,推动了各类任务和领域的发展。尽管LLM在多种任务上表现出色,但像LaPM 540B和Llama-3.1 405B这样的LLM由于参数规模庞大和计算需求高,面临一些限制,这通常需要依赖云API,这带来了隐私问题,限制了在边缘设备上的实时应用,并且增加了微调成本。此外,LLM在健康医疗、法律等专业领域的表现往往不足,原因在于缺乏足够的领域特定知识,这就需要专门化的模型。因此,小型语言模型(SLM)因其低推理延迟、成本效益高、开发效率高、易于定制和适应性强,逐渐受到青睐。这些模型特别适用于资源有限的环境和领域知识的获取,能够有效应对LLM面临的挑战,且非常适合需要本地数据处理以保证隐私、最小推理延迟以提高效率、以及通过轻量级微调获取领域知识的应用。SLM需求的不断增长促进了相关领域的广泛研究和开发。然而,关于SLM的定义、获取、应用、增强和可靠性等问题,仍缺乏全面的调查,因此我们开展了关于这些话题的详细调查。SLM的定义差异较大,因此为了标准化定义,我们建议通过SLM执行专门化任务的能力和适用于资源受限环境的特性来进行界定,设定基于突现能力所需的最小规模和资源约束下可持续的最大规模的边界。在其他方面,我们提供了相关模型/方法的分类法,并为每个类别开发了通用框架,以有效增强和利用SLM。我们已将收集的SLM模型及相关方法整理并发布在GitHub上:**https://github.com/FairyFali/SLMs-Survey。
1 引言
神经语言模型(LM)从BERT的[77]预训练和微调范式到T5的[250]预训练加提示方法,再到GPT-3的[33]预训练加上下文学习的演化,极大地推动了自然语言处理(NLP)的发展。这些进展拓宽了NLP在各个领域的应用,包括语言理解[311]、编程[227, 294]、推荐系统[327]、信息检索[38, 136, 204, 281]、移动设备控制[80]、科学发现[275, 379]、医学问答[30, 325]和法律问答[10]等。尤其是,最近商业专有模型如ChatGPT、Bard和Claude的出现,以及开源模型如Llama[84, 301, 302]的问世,推动了大语言模型(LLM)的迅速发展。尽管神经网络在通过更长的训练时间、更大的数据集和更大模型规模的方式不断提升在各种任务中的表现——这一现象被称为神经规模定律[149],但这些模型一旦达到一个临界规模阈值,往往会表现出突现能力,这支持了“越大越好”的趋势。这种能力在小规模模型中并不存在。例如,最新的Llama-3.1模型(拥有4050亿个参数)在对话、逻辑推理和编程方面的表现优于较小的7B版本[84]。 尽管LLM在复杂任务中表现出色,但其庞大的参数量和计算需求带来了显著的限制,妨碍了它们在许多现实应用中的采用。例如,LLaMa 3.1模型(拥有4050亿个参数)[84],在16K H100 GPU上训练了54天,需要大约202.5 GB的GPU内存(使用int4精度),并且推理延迟较大。这些问题在特定情境下带来了若干挑战:(1)由于庞大的GPU内存和计算成本,LLM通常托管在云端并通过基于云的API进行使用。用户需要上传数据来查询LLM,这引发了数据泄露和隐私问题,特别是在医疗、金融和电子商务等高风险领域;(2)个人助手推动下,设备端部署成为一个关键要求。云成本、延迟和隐私问题等因素妨碍了基于云的LLM在设备端的处理,且由于其高参数量和缓存需求,直接部署在移动设备等设备上不切实际;(3)其庞大的参数量可能导致推理延迟从几秒到几分钟,无法满足实时应用的需求。例如,Llama 2 7B在智能手机(配备Snapdragon 685处理器)上进行HellaSwag、TruthfulQA、MMLU和Arc_C基准测试时,处理100个tokens大约需要84秒[299];(4)为了提升在专业领域(如医疗和法律)中的表现,在这些领域LLM表现不佳,通常需要对LLM进行微调。然而,这一过程因其庞大的规模而计算开销巨大;(5)尽管通用LLM功能强大,但许多现实应用只需要特定的能力和领域知识,部署通用LLM会浪费资源,而这些LLM通常无法匹配为特定任务量身定制的模型表现[44, 112, 139, 244, 327]。 最近,小型语言模型(SLM)在缓解这些问题的同时,在处理特定领域问题时展现出与LLM相当的性能[1, 24, 104, 128, 199, 243, 296, 299, 352, 382]。由于参数较少,SLM在效率、成本、灵活性和定制化方面具有优势。它们在预训练和推理过程中大幅节省计算资源,减少了内存和存储需求,这对于需要高效资源利用的应用至关重要。这些小型模型在资源有限的环境中尤其有效,在低功耗设备(如边缘设备)上表现出色。此外,SLM通过增强设备端处理,提升了隐私、安全性、响应时间和个性化能力。这支持了高级个人助手和独立于云的应用,提升了能源效率,减少了碳排放。例如,Llama 3.2模型(1B和3B)证明了本地处理能够实现即时的提示和响应执行[7]。这种方法通过将敏感数据(如患者健康信息、商业数据、个人消息和日历详情)保存在本地,保护隐私,提高了保密性。此外,它还允许对哪些查询在设备端处理,哪些查询需要云端模型进行处理进行精确控制。因此,小型语言模型作为LLM的替代方案,正受到越来越多的关注,如图2所示,SLM在Hugging Face社区中的下载频次超过了较大的模型,图3则展示了SLM发布的日益受欢迎趋势。 通常,展现出突现能力的语言模型被归类为LLM。然而,SLM的分类仍不明确。不同的研究背景不同:有些研究将参数少于十亿的模型定义为SLM[199],而其他研究则将“小型语言模型”这一术语视为相对于更大模型的定义[163, 290, 327],目前在LLM的背景下尚未达成统一定义。研究表明,移动设备上的SLM通常拥有约6GB内存,并由不到十亿个参数的模型构成[199],而其他研究则认为,最多十亿个参数的模型仍属于小型,但其不具备突现能力[94]。鉴于其在资源受限环境和特定任务中的应用,我们提出了一个通用定义:考虑到特定任务和资源限制,我们将SLM定义为处于某个范围内的模型,其中下限是模型在专门任务中展现突现能力的最小规模,而上限则是能够在资源有限条件下管理的最大规模。该定义结合了不同的视角,并考虑了与移动计算和能力阈值相关的因素。 随着SLM需求的不断增长,关于SLM的文献也大量涌现。例如,为SLM优化的多种训练技术,如量化感知训练[198, 316, 350]和选择性架构组件选择[199, 299],旨在提升特定应用中的性能[32, 44, 244, 260, 338]。这些方法促进了众多开源、通用和领域特定SLM的开发[3, 24, 30, 296, 352, 378]。除了其固有能力外,SLM还可以作为增强LLM的模块或有效代理[218, 266, 339, 349, 361, 392]。尽管SLM表现出色,但我们不能忽视其可信度问题,如产生幻觉和隐私泄露的风险[81, 85, 123, 158, 158, 220, 226, 242, 312, 328, 370]。然而,目前尚无全面的调查深入探讨在LLM时代SLM的相关工作。因此,本文提供了首个全面的调查,分析了SLM在LLM时代的各个方面及其未来发展方向。我们的论文概览结构如图1所示。 总结:我们的主要贡献包括:
小型语言模型的高级增强策略
在第2节中介绍了基础概念后,本节将探讨提升SLM性能的各种高级技术,包括创新的训练方法以从零开始训练SLM、监督微调(SFT)以使SLM遵循指令、先进的知识蒸馏和量化技术,以及在LLM中常用的技术,如专家混合(Mixture-of-Experts)模型,用于增强SLM在特定应用中的表现。增强技术的总结也在表3中进行了概述。
小型语言模型的应用
本节将深入探讨小型语言模型(SLM)在各种自然语言处理(NLP)任务中的应用及其部署策略。由于小型语言模型具有提升隐私保护、加快推理速度和降低内存需求等优势,许多NLP应用现在倾向于使用SLM而非LLM,并采用专门的技术来提升SLM的性能。此外,SLM的部署通常需要考虑内存和运行时效率,这对于在预算有限的边缘设备(特别是智能手机)上优化资源使用至关重要。接下来,我们将讨论SLM在特定任务中的应用及其在移动设备和边缘设备上的部署方法。