AI届的新宠:小语言模型(SLM)?
00 分钟
2024-5-3
2024-6-1
type
status
title
summary
slug
Created
May 3, 2024 02:52 PM
category
tags
Date
icon
password
大语言模型(LLM)在过去几年产生了巨大影响,特别是随着OpenAI的ChatGPT的出现,各种大语言模型如雨后春笋般出现,国内如KimiChat通义千问文心一言智谱清言等。
 
然而,大语言模型通常拥有庞大的参数,从数十亿到数千亿,甚至到数万亿。比如通义千问发布的开源模型就包含了70亿、140亿和720亿等多个规模的版本;而最近发布的Llama3大模型则是有80亿和700亿两个版本;而广为人知的ChatGPT3最大的一个模型参数则达到了1750亿!
 
大模型的参数越多,一般意味着它能够捕捉和处理更丰富的信息和更复杂的模式,也就是回答的效果会更好,但是它们对于个人电脑、智能手机和其他智能设备等设备来说计算量却太大(尽管出现了量化等技术)。
 
由于上述原因,人们对小语言模型(SLM)的兴趣日益浓厚,并且在最近也出现了几款比较出名的小语言模型,请允许我娓娓道来。
 
1、Phi-3 模型
Phi-3是微软最近发布的一系列开放式 AI 模型,并且也是现有功能最强大、最具成本效益的小语言模型。
 
目前只提供了 mini 版本,即 Phi-3-mini ,这个版本拥有38亿个参数(也就是3.8B),经过3.3 万亿 token 的训练,并且被优化至可部署在手机上
 
如果想体验的话,可以在Microsoft Azure AI StudioHugging Face,或者我们之前提到过的Ollama上使用。 
 
Phi-3-mini 一共支持两种上下文,分别是4K和128K,其中128K的上下文长度是同类产品第一个支持的,并且对质量影响很小。
 
而且 Phi-3-mini 是经过指令微调的,这意味着它可以开箱即用!
 
虽然Phi-3 mini 参数很小,但是它表现良好,能够与Mixtral 8x7B 和 GPT-3.5 等模型相媲美!
notion image
注:Phi-3 在事实基准测试上(如TriviaQA)表现不佳,这是因为较小的模型大小会导致保留事实的能力较低
 
最后,微软在后续的几周内还会推出7B和14B两个型号,也就是图中的Phi-3-smallPhi-3-medium。
 
2、OpenELM 模型
OpenELM是Apple团队最近发布的模型,这是一个旨在在手机和笔记本电脑上运行的开源小语言模型 (SLM) 系列。
 
这个系列一共包含了2.7亿、4.5亿、11亿和30亿四个参数版本(有预训练和指令微调版本,一共8个型号)。
 
OpenELM 模型的突出特点是其内存和计算效率。它们建立在一系列最新的优化技术之上,这些技术减少了语言模型的内存和计算占用量。
 
根据Apple团队的描述,OpenELM 还使用了分层缩放策略,即以非均匀的方式将参数分配给注意力层和前馈层,这与经典的 Transformer 模型相反,经典的 Transformer 模型在所有层上具有统一的结构。
 
这种策略在参数预算约为 10 亿个参数的情况下,与 OLMo 相比,精度提高了 2.36%,同时需要的预训练令牌减少了 2 倍。
 
根据Apple发布的论文,在性能上,OpenELM 的性能优于使用公开数据集进行预训练的现有开源 LLM,如下图
notion image
 
值得一提的是,苹果这次发布了完整的框架,包括数据准备、训练、微调和评估程序,以及多个预训练的 checkpoint 和训练日志,其目标是“赋权和加强开放研究社区”,这与苹果之前的闭源生态形成了鲜明对比!
 
如果对OpenELM想了解更多的话,可以阅读其论文,这是地址:https://arxiv.org/pdf/2404.14619.pdf
 
3、Gemma 模型
Gemma 由 Google DeepMind 和 Google 的其他团队开发,灵感来自 Gemini,其名称反映了拉丁语gemma,意思是“宝石”。
 
Google一共发布了两种尺寸的模型,分别是Gemma 2B 和 Gemma 7B,每个尺寸都发布了经过预训练和指令调整的变体,并且能够直接在开发人员笔记本电脑或台式电脑上运行
 
在官方的博客上提到,由于Gemma 模型与Gemini模型共享技术和基础设施组件,这使得Gemma能够在同尺寸其他模型中保持比较好的性能,下面是GemmaLlama-2的一个对比。
notion image
 
值得注意的是,Gemma还有两个变体,分别是CodeGemmaRecurrentGemma
 
CodeGemma 注重的是编码功能,它也有几个不同的版本:一个7B的预训练变体,专门用于代码补全和代码生成任务;一个7B的指令调整变体,用于代码聊天和指令执行;还有一个2B的预训练变体,适用于快速代码补全,并且可以安装在你的本地计算机上。
 
这是CodeGemma与其他类似模型在单行和多行代码完成任务上的表现
notion image
 
RecurrentGemma 注重的是推理能力,与其他模型不同的是,它并没有采用目前LLM的Transformer 架构,而是基于Google新的Griffin 架构
 
在Google的博客中提到,这种 Griffin 架构是一种比较独特的结构,主要利用了循环神经网络和局部注意力来提高记忆效率。
 
💡
在 Transformer 架构出现之前,循环神经网络(RNNs)通常用于通过利用一个“隐藏状态”来处理序列数据,这个隐藏状态在处理数据时会不断更新。这个隐藏状态与一个“局部注意力”机制相结合,允许模型在不需要在每个步骤中回溯所有隐藏状态的情况下,回忆序列中早期的信息。
 
这种架构在实现与 Gemma 2B 模型类似的基准分数性能的同时,还带来了以下两个优势:
  • 减少内存使用:较低的内存要求允许在内存有限的设备(例如单个 GPU 或 CPU)上生成更长的样本。
  • 更高的吞吐量:由于内存使用量减少,RecurrentGemma 能够以显著更高的批量大小进行推断,从而每秒生成更多的令牌。
 
而且尽管缺乏基于 Transformer 的架构,但研究团队发现,与较大的 LLM(包括 Gemma 系列模型的 LLM)相比,RecurrentGemma 在各种测试中表现良好。
 
根据该团队的研究结果,RecurrentGemma-2B-IT(IT 的意思是指令调整模型)在数百个包括创意写作和编码任务的提示中相对于更大的 Mistral 7B 模型取得了 43.7% 的胜率。这一结果也仅略低于 Gemma-1.1-2B-IT 在同组任务中取得的 45% 胜率。
 
最后简单总结一下,本次一共介绍了三款大厂推出的小语言模型(SLM),虽然现在大语言模型如火如荼,但它对于设备的要求较高,所以最近也不断涌现出了很多小模型,看着有二分天下的态势,未来的语言模型或许会朝着更小、更灵活的人工智能模型进行转变。