解读小模型——SLM
共 6446字,需浏览 13分钟
·
12小时前
【引】如果希望从文献途径了解一个新的领域,该领域的相关survey 论文可能是一个较好的切入点,对于日新月异的AI领域尤其如此。”Small Language Models: Survey, Measurements and Insights”一文(https://arxiv.org/pdf/2409.15790)或许可以帮助我们更好地了解SLM。
大模型的世界几乎每天都在发生变化。一方面,人们越来越重视开发更大、更强大的语言模型,以实现通用人工智能(AGI)。这些大模型通常位于拥有数十万GPU的大型数据中心中。科技巨头之间正在进行一场激烈的竞赛,争夺谁能率先证明机器能够处理复杂的语言任务,并实现AGI。
另一方面,人们也在创建更小的模型,称为小型语言模型(SLM),以便高效地部署在设备上,如台式机、智能手机和可穿戴设备。SLM并不是指传统的参数较少的模型,而是大模型的小型化版本。创建SLM背后的愿景是使机器智能大众化,让每个人都能访问并负担得起。尽管SLM具有潜在的重要意义,但与大模型相比,受到的关注较少。
虽然关于SLM的功能或其在设备上运行成本的文献有限,但这些模型已经被大规模地集成到商业设备中。例如,最新的谷歌/三星智能手机内置了Gemini Nano,使第三方移动应用程序能够通过提示词和LoRA模块利用大模型功能。此外,iPhone和iPad上的最新iOS系统包括一个设备上的本地基础模型,可以与操作系统无缝集成,从而提高性能和隐私保护。
1. 什么是SLM?
与大模型相比,SLM是一种简化的、高效的语言模型,参数数量减少,总体规模较小。SLM中的“小”表示与大型语言模型相比,参数数量和模型的总体大小都减少了。虽然大模型可能有数十亿甚至数万亿个参数,但 SLM 通常只有几百万到几亿个参数。
然而,什么是“小”可以根据场景和语言建模的当前技术状态而变化。随着近年来模型规模呈指数级增长,曾经被认为是大模型的东西现在可能被认为是小模型。GPT-2就是一个很好的例子。
2. 为什么参数的数量很重要?
语言模型中的参数数量决定了语言模型在训练期间学习和存储信息的能力。更多的参数通常允许模型捕获更复杂的模式和细微差别,从而提高语言任务的性能。
下面是一些SLM的例子,它们展示了这些紧凑而强大的模型功能:
Phi3 Mini: Phi-3-Mini 是一个拥有38亿个参数的语言模型,基于3.3万亿个令牌的庞大数据集进行训练。尽管它的尺寸较小,但是它可以与更大的模型竞争,比如 Mixtral 8x7B 和 GPT-3.5,在 MMLU (一个语言理解基准)和MT-bench(一个机器翻译基准)上分别取得了可观的69% 和8.38分。
Google Gemma 2B: Google Gemma 2B 是 Gemma 系列的一部分,是一系列为各种文本生成任务设计的轻量级开放模型。Gemma 模型的上下文长度为8192个令牌,非常适合在笔记本电脑、台式机或云基础设施等资源有限的环境中部署。
Databricks Dolly 3B: Databricks 的 Dolly-v2-3B 是在 Databricks 平台上训练的商业级指令跟踪语言模型。它来源于 pythia-2.8B,已经在大约15,000个涵盖不同领域的指令/响应组上进行了训练。虽然它可能不是最先进的,但它显示了非常高质量的指令遵循行为。
3. SLM 的架构变化
随着时间的推移,这些SLM的架构发生了变化。
3.1 自注意力机制的类型改变
在Transformer模型中,自注意机制是至关重要的。在SLM中,主要有四种类型的自注意机制: 多头注意力(MHA)、多查询注意力(MQA)、群体查询注意力(GQA)和多头潜在注意力(MLA)。
多头注意力机制: 这种机制允许模型通过利用多头注意力同时关注输入数据的不同部分。它是transformer模型中最常用的自注意机制。
群组查询注意力: GQA 是多头注意力的一种变体,它通过在多头之间共享查询表示,同时保持单独的key-value表示来降低计算复杂性。它的目的是在注意机制的计算效率和多样性之间取得平衡。
多查询注意力: 通过在所有头之间使用一个共享查询来简化多头注意力,但是允许不同的键和值投影。这降低了空间和时间的复杂性。
多头潜在注意力(MLA) : MLA 利用low-rank和KV联合压缩获得比 MHA 更好的效果,需要的键值(KV)缓存要少得多。
随着时间的推移,人们对这些自注意机制的偏好发生了变化。
上图显示了从2022年到2024年期间自注意力机制的演变趋势。可以看出,MHA 正在逐步淘汰,并被 GQA 所取代。
3.2 前馈神经网络的类型变化
前馈网络可以分为两种主要类型: 标准 FFN 和门限 FFN。
标准 FFN: 这种类型的网络由两层组成,利用一个激活函数。这是神经网络中常用的结构。
门限 FFN: 门限 FFN 在标准方法之外进一步采用了门限层,这个层增强了网络控制和调节信息流的能力。
随着时间的推移,人们对这些前馈神经网络类型的偏好也发生了变化。上册的右侧显示了2022年至2024年SLM使用的前馈网络类型的趋势,标准的 FFN 正在逐步淘汰,并被门限 FFN 所取代。
3.3 前馈网络中间层比率的变化
前馈神经网络的中间比率是指中间层维数与隐含层维数之间的比值。简单而言,它决定了中间层相对于整个网络的大小。对于标准 FFN,它通常设置中间比率为4。这意味着中间层通常比隐藏层小四倍。另一方面,门限 FFN 在中间比值上表现出更大的分集性。它可以是从2到8的任何范围,表明中间层的大小在不同的模型之间变化。
研究观察了的有趣模式。下面图提供了从2022年到2024年不同前馈网络中间比率的趋势变化。
3.4 前馈神经网络激活函数的改变
在前馈神经网络(FFN)中,有四种常用的激活函数:
ReLU (Rectified Linear Unit) : ReLU 就像一个开关,打开或关闭的信息流,它应用广泛。
GELU (Gaussian Error Linear Unit): GELU 是一种平滑零值和正值之间转换的激活函数,而 GELUtanh 是GELU的变体。
SiLU (Sigmoid Linear Unit): SiLU 是一个结合了 Sigmoid 函数和线性函数特性的激活函数。
随着时间的推移,这些激活函数的使用发生了变化。在2022年,ReLU成为许多 FFN 的首选激活函数。然而,进入2023年,过渡到使用 GELU 及其变体GELUtanh。到2024年,SiLU成为激活函数的主要选择。
3.5 归一化类型的变化
当涉及到归一化层时,有两种常用的主要类型: LayerNorm 和 RMSNorm。
LayerNorm是一种归一化技术,它调整神经网络每一层的值。它在SLM中得到了广泛的应用。
RMSNorm或平方平均数标准化有助于调整和稳定每一层神经网络的值。
在过去的几年中,LayerNorm是最常用的技术。然而,近几年已经向采用 RMSNorm的方向转变了。
3.6 词汇表的增加
词汇表是指SLM能够理解和识别的唯一单词或token的总数,从2022年到2024年间词汇表的变化趋势。
事实上,较新的SLM词汇表通常超过50,000个单词或token。词汇表的扩大使模型能够处理更广泛的语言,并提供更准确和更全面的响应。
4. SLM 的架构创新
截至2024年10月,SLM的典型架构往往包括GQA、具有SiLU激活的门控前馈网络(FFN)、2到8之间的FFN中间层比率、RMSNorm和大于50000的词汇表。
SLM 技术近年来得到了一些创新和发展,其中的关键技术包括了参数共享和非线性补偿技术。
4.1 参数共享
在大模型中,参数共享技术允许在网络的不同部分重复使用相同的权重集。这不仅有助于减少参数数量,还能在保持性能的同时提高模型的效率。一种常见的方法是embedding-lm的head共享,即单词嵌入层与最终语言模型(LM)的head层共享相同的权重。另一个例子是分层注意力/FFN共享,其中在模型的多个层中使用相同的权重。这种共享技术可以在Gemma和Qwen等模型中看到,显著提升了模型的训练和推理效率。
4.2 分层参数缩放
OpenELM引入了一种创新技术,称为分层参数缩放。与传统模型中每个Transformer层具有相同配置不同,OpenELM为每个层分配了不同的配置。这种设计使得每一层中的参数数量发生变化,从而优化了资源分配,提高了模型的整体效率和性能。通过这种方式,OpenELM能够在保持计算成本可控的同时,实现更高的精度和更强的表达能力。这一技术不仅提升了模型的灵活性,还增强了其在各种任务中的应用效果。
4.3 非线性补偿
PanGu-π在分析现有语言模型架构时,注意到了一个称为特征折叠的问题。这个问题影响了模型的表达能力。为了更直观地解释这一点,我们可以深入观察LLaMA的层结构,发现其学习到的特征(或表示)的多样性开始减少,特征变得更加相似,这意味着token之间的差异减小。因此,该模型生成多样化和高质量输出的能力受到了影响,进而影响了其创造性和整体性能。
为了解决这个问题,PanGu-π采用了两种非线性补偿技术。首先,在前馈网络(FFN)中引入了一系列激活函数以增加更多的非线性。其次,在多头注意力机制(MHA)中引入了增强的快捷方式,进一步增强了Transformer结构的非线性。这些架构创新令人兴奋,因为它们显著提高了小型语言模型的效率、性能和有效性,使它们在理解和生成类人文本方面更加强大和有能力。
5. SLM 的应用场景
小型的、面向特定任务的语言模型正逐渐成为大型通用模型的强大替代品。在以下场景中,SLM可能成为许多企业更优的选择。
5.1 降低成本和减少资源使用
大型模型因其庞大的功耗和资源需求而闻名。相比之下,小型语言模型(SLM)虽然也需要一定的计算资源,但由于它们是在更小、更具体的数据集上进行训练的,因此对系统的要求和成本要低得多。此外,由于所需的计算资源更少,SLM也消耗更少的电力,使其成为一种更加环保的选择。这种优势不仅有助于降低企业的运营成本,还能减少对环境的影响,符合可持续发展的理念。
5.2 为特定任务量身定制的性能
当企业应用人工智能技术时,它们寻求的是针对性强、切实可行的解决方案,而非海量但杂乱无章的信息。尽管大型模型具备处理广泛任务的能力,但在满足特定业务需求方面,这些模型往往难以做到精准聚焦。试图以数千亿个参数来满足所有人的所有需求,在企业环境中几乎毫无意义。
相比之下,专为特定任务设计的小型语言模型(SLM)在知识检索或客户支持等场景下表现更佳。例如,像Salesforce xGen这样的开源模型,通过结合预训练技术和重点数据,能够持续提供优秀的结果,擅长于信息汇总、代码编写等任务。
5.3 提高准确度
人工智能模型的准确性在很大程度上取决于其训练数据的质量与相关性。大型通用模型通常使用大量互联网数据进行训练,但这些数据中有很多可能与特定的业务需求并不直接相关,导致模型在实际应用中表现不佳。相比之下,像xGen这样的小型语言模型(SLM)则采用了与企业密切相关的数据进行训练,例如客户关系管理(CRM)系统中的信息。这种高度相关的数据使得SLM能够更好地理解和处理特定领域的任务,从而提高了模型的准确性和实用性。
6. 小结
随着企业在不断发展的生成式AI领域中持续前行,SLM正逐渐成为一种实用且强大的解决方案。它巧妙地平衡了能力和效率,使企业能够以更加可控和定制化的方式利用人工智能。
目前,SLM架构的配置已经发生了显著变化,包括中间层比率、注意力机制类型以及激活函数等,这些调整对运行时速度产生了显著影响。尽管在SLM中对Transformer结构的改进相对有限,但为了实现最佳的精度与速度折衷,人们正在积极探索与特定硬件协同设计的方案,并进一步优化SLM架构。
【参考资料与关联阅读】
-
”Small Language Models: Survey, Measurements and Insights”, https://arxiv.org/pdf/2409.15790 -
“PanGu-π: Enhancing Language Model Architectures via Nonlinearity Compensation”, https://arxiv.org/abs/2312.17276 -
“Understanding Parameter Sharing in Transformers”, https://arxiv.org/pdf/2306.09380 -
大模型应用的10种架构模式 -
如何构建基于大模型的App