AI 领域新宠:小语言模型 (SLM)
背景与挑战
大语言模型(LLM)在过去几年产生了巨大影响,特别是随着 OpenAI 的 ChatGPT 的出现,各种大语言模型如雨后春笋般涌现。国内如 KimiChat、通义千问、文心一言和智谱清言等也相继发布。
然而,大语言模型通常拥有庞大的参数,从数十亿到数千亿,甚至到数万亿。例如通义千问发布的开源模型就包含了 70 亿、140 亿和 720 亿等多个规模的版本;而最近发布的 Llama3 大模型则是有 80 亿和 700 亿两个版本;广为人知的 ChatGPT-3 最大的一个模型参数则达到了 1750 亿。
大模型的参数越多,一般意味着它能够捕捉和处理更丰富的信息和更复杂的模式,回答的效果会更好。但是它们对于个人电脑、智能手机和其他智能设备来说计算量却太大,尽管出现了量化等技术,推理延迟和硬件成本依然是主要瓶颈。
由于上述原因,人们对小语言模型(SLM)的兴趣日益浓厚。SLM 旨在在保持合理性能的同时,显著降低计算资源需求,使其能够部署在边缘设备上。最近也出现了几款比较出名的小语言模型,以下将详细分析。
主流小语言模型分析
Phi-3 模型
Phi-3 是微软最近发布的一系列开放式 AI 模型,也是现有功能最强大、最具成本效益的小语言模型之一。
目前主要提供了 mini 版本,即 Phi-3-mini。这个版本拥有 38 亿个参数(3.8B),经过 3.3 万亿 token 的训练,并且被优化至可部署在手机上。如果想体验的话,可以在 Microsoft Azure AI Studio 或者 Ollama 上使用。
Phi-3-mini 一共支持两种上下文长度,分别是 4K 和 128K。其中 128K 的上下文长度是同类产品第一个支持的,这对于处理长文档、代码库或复杂对话历史至关重要,且对质量影响很小。而且 Phi-3-mini 是经过指令微调的,这意味着它可以开箱即用,无需额外的提示工程即可理解用户意图。
虽然 Phi-3-mini 参数很小,但是它表现良好,能够与 Mixtral 8x7B 和 GPT-3.5 等模型相媲美。不过需要注意的是,Phi-3 在事实基准测试上(如 TriviaQA)表现不佳,这是因为较小的模型大小会导致保留事实的能力较低,需要结合检索增强生成(RAG)技术来弥补知识时效性和准确性的不足。
微软在后续的几周内还会推出 7B 和 14B 两个型号,也就是图中的 Phi-3-small 和 Phi-3-medium,以满足不同场景的需求。
OpenELM 模型
OpenELM 是 Apple 团队最近发布的模型,这是一个旨在在手机和笔记本电脑上运行的开源小语言模型(SLM)系列。
这个系列一共包含了 2.7 亿、4.5 亿、11 亿和 30 亿四个参数版本(有预训练和指令微调版本,一共 8 个型号)。OpenELM 模型的突出特点是其内存和计算效率。它们建立在一系列最新的优化技术之上,这些技术减少了语言模型的内存和计算占用量。
根据 Apple 团队的描述,OpenELM 还使用了分层缩放策略(Hierarchical Scaling Strategy),即以非均匀的方式将参数分配给注意力层和前馈层,这与经典的 Transformer 模型相反,经典的 Transformer 模型在所有层上具有统一的结构。这种策略在参数预算约为 10 亿个参数的情况下,与 OLMo 相比,精度提高了 2.36%,同时需要的预训练令牌减少了 2 倍。
在性能上,OpenELM 的性能优于使用公开数据集进行预训练的现有开源 LLM。值得一提的是,苹果这次发布了完整的框架,包括数据准备、训练、微调和评估程序,以及多个预训练的 checkpoint 和训练日志,其目标是'赋权和加强开放研究社区',这与苹果之前的闭源生态形成了鲜明对比。
Gemma 模型
Gemma 由 Google DeepMind 和 Google 的其他团队开发,灵感来自 Gemini,其名称反映了拉丁语 gemma,意思是'宝石'。
Google 一共发布了两种尺寸的模型,分别是 Gemma 2B 和 Gemma 7B,每个尺寸都发布了经过预训练和指令调整的变体,并且能够直接在开发人员笔记本电脑或台式电脑上运行。
在官方的博客上提到,由于 Gemma 模型与 Gemini 模型共享技术和基础设施组件,这使得 Gemma 能够在同尺寸其他模型中保持比较好的性能。值得注意的是,Gemma 还有两个变体,分别是 CodeGemma 和 RecurrentGemma。
CodeGemma 注重的是编码功能,它也有几个不同的版本:一个 7B 的预训练变体,专门用于代码补全和代码生成任务;一个 7B 的指令调整变体,用于代码聊天和指令执行;还有一个 2B 的预训练变体,适用于快速代码补全,并且可以安装在你的本地计算机上。CodeGemma 与其他类似模型在单行和多行代码完成任务上的表现优异。
RecurrentGemma 注重的是推理能力,与其他模型不同的是,它并没有采用目前 LLM 的 Transformer 架构,而是基于 Google 新的 Griffin 架构。这种 Griffin 架构是一种比较独特的结构,主要利用了循环神经网络(RNNs)和局部注意力来提高记忆效率。
在 Transformer 架构出现之前,循环神经网络(RNNs)通常用于通过利用一个'隐藏状态'来处理序列数据,这个隐藏状态在处理数据时会不断更新。这个隐藏状态与一个'局部注意力'机制相结合,允许模型在不需要在每个步骤中回溯所有隐藏状态的情况下,回忆序列中早期的信息。
这种架构在实现与 Gemma 2B 模型类似的基准分数性能的同时,还带来了以下两个优势:
- 减少内存使用:较低的内存要求允许在内存有限的设备(例如单个 GPU 或 CPU)上生成更长的样本。
- 更高的吞吐量:由于内存使用量减少,RecurrentGemma 能够以显著更高的批量大小进行推断,从而每秒生成更多的令牌。
而且尽管缺乏基于 Transformer 的架构,但研究团队发现,与较大的 LLM(包括 Gemma 系列模型的 LLM)相比,RecurrentGemma 在各种测试中表现良好。根据该团队的研究结果,RecurrentGemma-2B-IT 在数百个包括创意写作和编码任务的提示中相对于更大的 Mistral 7B 模型取得了 43.7% 的胜率。
技术深度解析
参数效率与架构创新
小语言模型的核心竞争力在于如何在有限的参数量下最大化信息密度。传统的 Transformer 架构虽然强大,但在推理阶段存在显存占用高、计算复杂度随序列长度平方增长的问题。SLM 通过以下方式优化:
- 混合专家系统(MoE):部分 SLM 采用稀疏激活机制,仅在推理时激活部分参数,从而在保持大模型能力的同时降低计算量。
- 量化技术:将模型权重从 FP16 或 BF16 压缩至 INT8 甚至 INT4,大幅减少显存需求,使得在消费级显卡甚至移动端 NPU 上运行成为可能。
- 架构替代:如 RecurrentGemma 尝试用 RNN 变体替代 Attention 机制,线性化序列依赖关系,提升长文本处理能力。
端侧部署优势
SLM 的兴起不仅仅是为了降低成本,更是为了满足隐私和实时性需求。
- 数据隐私:在医疗、金融等敏感领域,数据不出本地的原则至关重要。SLM 允许在设备本地完成推理,避免数据上传云端带来的泄露风险。
- 低延迟响应:网络传输的不确定性会影响用户体验。本地部署消除了网络往返时间(RTT),对于语音助手、实时翻译等应用尤为重要。
- 离线可用性:在弱网或无网环境下,SLM 依然能够提供基础的自然语言处理能力,增强了设备的鲁棒性。
总结与展望
本次一共介绍了三款大厂推出的小语言模型(SLM):微软的 Phi-3、苹果的 OpenELM 和谷歌的 Gemma。虽然现在大语言模型如火如荼,但它对于设备的要求较高,所以最近也不断涌现出了很多小模型,看着有二分天下的态势。
未来的语言模型或许会朝着更小、更灵活的人工智能模型进行转变。我们可能会看到更多针对特定垂直领域优化的 SLM,以及大模型与小模型的协同工作模式(例如大模型负责规划,小模型负责执行)。随着芯片算力的提升和算法的进一步优化,SLM 将在物联网、移动终端及嵌入式系统中发挥越来越重要的作用,真正实现人工智能的普惠化。
开发者在选择模型时,应综合考虑任务复杂度、硬件约束及数据隐私要求。对于简单的问答或分类任务,Phi-3-mini 或 Gemma-2B 已足够胜任;而对于需要较强逻辑推理的场景,OpenELM 的分层策略可能更具优势。无论选择哪种方案,关注开源社区的动态并及时跟进最新的技术迭代,都是保持竞争力的关键。


