本地大模型之路(一):大模型的是什么、为什么以及怎么选
M4 Mac mini 的发布,结合国补可以说掀起了一股购机潮。16GB 起步的内存、3500 元的价格加上新模具,笔者也忍不住购入了一台。

苹果之所以大发善心,让 Mac mini 从 16GB 内存起跳,其中一个重要的原因就是 Apple Intelligence。不少人会有一个误解:苹果不是外包大模型给 OpenAI 了吗,为什么需要端上计算?实际上大部分 Apple Intelligence 的应用都是苹果自研的模型1,其他提供方的定位更像是搜索引擎。

参照苹果基座大模型(AFM)的论文2的架构图,Apple Intelligence 大致分为两部分:
以这个 2.73B 的模型为例,经过量化之后每个权重大概是 3.5 bits,那么运行时需要占用的统一内存为 2.73*3.5/8=1.19 GB,这还仅仅是一个语言模型,不同场景可能还有专有的多模态模型,因此常驻几 GB 的内存如果还是默认 8 GB 的运行环境,实在不能说是「为 Apple 智能准备好」。
随着 DeepSeek v2、Qwen-2.5、Llama-3.3 等开源模型的发布,开源模型的部分能力逐渐持平甚至超过 gpt-4o,Local LLM 社区也掀起一股又一股热潮。虽然各家旗舰模型基本在千亿(100B)左右规模,合理量化下消费级单机设备很难跑得动,但 5B 左右的小语言模型(SLM)或者多模态模型也是进展喜人,同样值得我们关注。
下图是来自 Qwen-2.5 的博客4,MMLU 能达到 65 分以上的模型尺度越来越小。

另有研究5发现,几乎每隔 3.3 个月,模型能力密度会翻倍,即能在更小的尺度下压缩更多的知识。

读到这里,有很多人会有疑问:厂商提供的模型服务好用、后期有保证、价格便宜甚至免费,为什么还会有部署本地大模型这种需求?
这个问题和在家里自建服务、NAS、甚至服务器非常类似,但还是有些不太一样的地方:
可能有人觉得自己本地的项目、知识库是自己的固有 IP,接入外部大模型有隐私问题。这个问题是存在的,但是非常少。
实话说,在当前阶段,用户输入数据不再是这些头部大模型公司训练数据的可靠来源,为了解决复杂的推理任务它们甚至更倾向于使用合成数据;如果是出于避免广告追踪的目的,使用手机厂商封装的第三方服务,这些模型服务提供方大概率也无法追踪到个人。
但是和智能音箱的语音交互、NAS 上的个人相册、家里的监控录像一样,这些数据也足够构成部署一个本地模型来处理的理由。
是的,relax,除非你是买了几台 Mac mini 用雷雳口连接组集群的狂热爱好者,抑或是 4 路 4090 的「国家电网合作伙伴」,那你完全可以把本地部署大模型当成一种纯粹的挑战和娱乐。
它和其他自建服务一样,可能有一定的上手门槛和维护成本(这里不完全对,大模型存在的意义就是解决问题的门槛变得非常低),但是真的可以很有乐趣。比如我有这样几个想法,虽然没有时间,一定可以用大模型实现:
这里就需要大家大开脑洞。幸运的是,因为大模型的通用性非常好,我们也不再需要精调、训练、阅读年久失修的部署文档,完成这样的工程甚至不停求助 API 模型就可以。
除此之外还有更高阶的玩法。得益于开源模型的涌现,我们可以操作模型的权重得到更有意思的输出:


同时不得不提到开源社区的活跃同时带来了多方面的进步,我们不仅有了更好的训练、推理工具,也带了模型技术上的迭代。例如现在最常用的长序列扩展方法 NTK aware scaling,是作者在研究 SuperHot8的时候偶然发现,相关内容直接发布在 r/LocalLLaMA 中。
好了,我们打开 HuggingFace 开始挑选心爱的模型,结果一下子被这浩如烟海的模型整出选择恐惧症了。好在 HuggingFace 贴心地给了我们一个 2024 年开源模型总结9,这里你可以看到最受大家喜爱的一批模型:

厂商的模型命名确实是非常值得吐槽,连 OpenAI 这些搞 to C 的产品名称也经常让人一头雾水。从上面的图里,我们简单认识一下这些命名规则:

从这些命名中我们大致能定位到自己想要的模型。但是另外值得注意的是模型支持的语言——并不是所有开源模型都像 ChatGPT 一样能做到几乎支持所有语言,比如 Llama 就不支持中文。尽管这些模型是能够进行多语言对话的,但是能力会相较于支持的语言有所降低。
模型能力是我们选择模型的第一指标,但是什么是模型能力?它和什么因素相关?
根据传统的训练 Scaling Laws,模型训练的 loss 直接和训练的计算量相关(包括模型参数大小、训练的数据量),当 loss 降低到一定程度,模型会出现「涌现行为」,即在任务中的准确性有突然的提升。
我们可以直观理解为「脑子越大、书读越多,成绩越好」,并会在某个时刻突然「开窍」了。以 Qwen 为例:

各家卷训练算力逐渐饱和之后,目前还有类似 o1 、开源的 QwQ 这样的模型,会主动进行更多的推理,提高模型能力。我们可以直观理解成「思考越多,成绩越好」。当然我们不用这些推理模型,使用思维链提示、多数投票采样,也能达到类似的效果。
这个问题反映出一个大模型领域评估的难题——如何正确衡量模型的效果。在展开之前,我的回答是:大多数情况下可以,但是请以实际测试为准。
跟人类的考试一样,大模型的测试也分为这些题型:
事实上大部分论文、榜单比的基本是客观题型,比如最常见的 MMLU (Massive Multitask Language Understanding)的样题如下:
Question: In 2016, about how many people in the United States were homeless?
A. 55,000
B. 550,000
C. 5,500,000
D. 55,000,000
Answer: B对于对话模型,模型会看到除答案以外的部分,评估正确生成答案的准确率。显然这个和我们实际使用场景是有一定的偏差。除非你用大模型做作业。
另一方面,大多数榜单题目是开源并且存在已久,模型开发者不管是有意无意都很难避免数据泄露、榜单过拟合的问题。但是话说回来,如果一个模型在各个榜单上都刷很高,那么它大概率有两把刷子。同时也有部分榜单是通过人类评估、题目闭源或者随时间变化,是否意味着完全公正呢?多数情况下是的,但还是有榜单优化的方法能够涨点。
那么我们可以从哪些维度去评价模型能力呢?以 Llama311的后训练指标为例:

Open LLM Leaderboard 是 HuggingFace 推出的公开可复现的开源大模型榜单,主要评价指标几经迭代,目前都是一些比较难的评测作为参考,比如 GPQA(博士水平的物化生),因此得分比较低是正常的。
我们如果选择 For Consumers/Mid-range 和 Only Official Providers 可以过滤出比较适合家用的官方提供的模型,当然选择社区提供的其他精调或者融合模型也可以,但是要注意是否有可用的量化版本下载。

由 LMSYS 的真人盲选榜单,由于其特殊性也是各家刷榜和 PR 的主要目标和来源。不过能筛选的维度比较少,而且位于前列的基本是闭源模型。不过值得注意的事,尽管由于其机制,刷榜变得困难但也并非不可能,可以作为挑选模型的辅助指标。

每月都会更新题目、每半年完整刷新,以防止数据泄露和主观评估设计的榜单。以代码能力,目前的排名为:

开源评估工具、中英闭源评测集榜单,问题是模型比较少、前面也都是闭源模型。

多模态模型的选择同样很多,但是不一定有很好的推理框架支持。不过乐观预计在 2025 年我们会有更多开源的多模态模型,真正用一个模型推理所有家用场景。
推理模型开源的目前可选的大概只有 QwQ-32B-preview,不过这类模型有个缺点就是会无法控制地输出长段思考(废话),很有意思但是会非常耗时。
这个问题和想要解决什么任务、需要多少序列长度、能接受多少延迟等等都有关系。当然和我们有什么硬件的关系是最密切的。大致上可以有这样一个模糊的印象:
模型选择还涉及到模型瓶颈、硬件、量化、推理引擎等等更复杂的知识,这我们会在后面的文章中详细介绍。
欢迎在评论区分享你在用的模型和使用场景 😀!
扩展阅读:译文 | 百舸争流,能者自渡:本地大语言模型(LLM)那些事
> 关注 少数派小红书,感受精彩数字生活 🍃
> 实用、好用的 正版软件,少数派为你呈现 🚀