总有人说本地模型没意义。这种考量如果只从自己的需求出发,可能过于武断,甚至有些自大。不同的人、不同的场景,有不同的模型需求。以翻译和转换为例,速度有的时候不是第一要务,而可靠性和从知识库检索后转换翻译的质量可能更重要。在数据敏感的场景下,本地模型虽然速度不一定最快,但能保证数据不出本地,这本身就是很大的价值。有本地搭建需求的场景,也不应该被轻易否定。
所以作为理性的人,不能轻易否定其他人的选择和需求,不能无端地说速度或者参数规模要超过某个数值以上的才有用、低于某个数值就不能用。甚至上下文范围也不能说一定得大于某个值才行——有的工具调用不需要特别大的上下文,反而需要比较靠谱的工具调用能力对代码进行优化;有的模型就是为此而生的。
一个开阔豁达的人,不要为了自己赢或者秀优越而去争论什么,那样很不体面。
之前关于速度的部分已经在别的文章里提到过,这篇就不说速度,只关注一件事:现在这些在本地处理器上就能运行的小模型,和当年的 GPT-3.5 相比,能不能达到那个表现。
评测基准
选了有代表性的 6 个基准,覆盖知识、代码、数学、推理四个维度。GPT-3.5 的成绩来自 GPT-4 技术报告 Table 2(arXiv:2303.08774),是 OpenAI 自己公布的。
| 基准 | 维度 | GPT-3.5 成绩 | 测试方式 |
|---|---|---|---|
| MMLU | 多任务知识 | 70.0% | 5-shot |
| HumanEval | 代码生成 | 48.1% | pass@1, 0-shot |
| GSM8K | 小学数学 | 57.1% | 5-shot |
| HellaSwag | 常识推理 | 85.5% | 10-shot |
| ARC | 科学推理 | 85.2% | 25-shot |
| WinoGrande | 语义推理 | 81.6% | 5-shot |
数据集都是公开的:MMLU 来自 HuggingFace(14042 题),HumanEval 来自 GitHub openai/human-eval(164 题),GSM8K 来自 GitHub openai/grade-school-math(1319 题),HellaSwag 来自 GitHub rowanz/hellaswag(10042 题),ARC 来自 HuggingFace allenai/ai2_arc(1119 题),WinoGrande 来自 HuggingFace allenai/winogrande(40398 题)。
受测模型
| 模型 | 大小 | 说明 |
|---|---|---|
| qwen3.5:9b | 8.9 GB | 本次实验中最大的本地模型 |
| carstenuhlig/omnicoder-2-9b | 5.7 GB | 代码专用模型 |
| qwen3.5:0.8b | 1.2 GB | 1GB 级别通用模型 |
| lfm2.5-thinking:latest | 697 MB | 带思维链的混合架构 |
| granite4:350m-h | 349 MB | IBM 混合架构,1M 上下文 |
| LiquidAI/lfm2.5-350m | 379 MB | Spark Arena 速度榜首 |
拉取命令:
ollama pull qwen3.5:9b
ollama pull carstenuhlig/omnicoder-2-9b
ollama pull qwen3.5:0.8b
ollama pull lfm2.5-thinking:latest
ollama pull granite4:350m-h
ollama pull LiquidAI/lfm2.5-350m
评测方法
每个基准从完整数据集中均匀采样 60 题。为什么不用全量?因为时间有限,而且也没那个必要——60 道题足够有代表性了。采样时按学科或类别均匀分布,避免偏科。所有模型用同样的 60 道题,temperature=0,确保结果可比。
每道题的模型原始回答完整存储下来,然后离线评分。评分时先清理思维链前缀(有些模型会先输出一大段思考过程再给答案),再从清理后的文本中用多种策略提取答案——先找结构化标记,再找关键词模式,最后从文本末尾回溯。这样不会因为某个模型的输出格式特殊就丢分。
结果

| 模型 | 大小 | MMLU | HumanEval | GSM8K | HellaSwag | ARC | WinoGrande | 平均比值 |
|---|---|---|---|---|---|---|---|---|
| GPT-3.5 | — | 70.0% | 48.1% | 57.1% | 85.5% | 85.2% | 81.6% | 100% |
| qwen3.5:9b | 8.9 GB | 63.2% (90%) | 55.0% (114%) | 91.7% (161%) | 76.7% (90%) | 86.7% (102%) | 91.7% (112%) | 95% |
| omnicoder-2-9b | 5.7 GB | 19.3% (28%) | 90.0% (187%) | 70.0% (123%) | 28.3% (33%) | 26.7% (31%) | 46.7% (57%) | 76% |
| granite4:350m-h | 349 MB | 42.1% (60%) | 60.0% (125%) | 21.7% (38%) | 28.3% (33%) | 21.7% (25%) | 56.7% (69%) | 58% |
| qwen3.5:0.8b | 1.2 GB | 15.8% (23%) | 43.3% (90%) | 56.7% (99%) | 30.0% (35%) | 60.0% (70%) | 40.0% (49%) | 51% |
| lfm2.5-thinking | 697 MB | 31.6% (45%) | 25.0% (52%) | 41.7% (73%) | 30.0% (35%) | 15.0% (18%) | 40.0% (49%) | 45% |
| lfm2.5-350m | 379 MB | 28.1% (40%) | 13.3% (28%) | 10.0% (18%) | 26.7% (31%) | 48.3% (57%) | 38.3% (47%) | 37% |
括号内为相对 GPT-3.5 的能力比值。平均比值为六维度比值的算术平均。
各模型表现
qwen3.5:9b — 已全面追平 GPT-3.5(平均 95%)
四个维度超过 GPT-3.5:GSM8K 91.7% vs 57.1%,HumanEval 55.0% vs 48.1%,ARC 86.7% vs 85.2%,WinoGrande 91.7% vs 81.6%。MMLU 63.2% 略低于 70.0%,HellaSwag 76.7% 略低于 85.5%。如果 2023 年 GPT-3.5 是标杆,那这个模型在 2026 年已经把它追平了,而且是本地免费跑。
omnicoder-2-9b — 代码和数学暴打 GPT-3.5,通用知识几乎为零(平均 76%)
HumanEval 90.0% 对 GPT-3.5 的 48.1% 是 187%,GSM8K 70.0% 对 57.1% 是 123%。但 MMLU 只有 19.3%,HellaSwag 28.3%,ARC 26.7%——典型的代码专用模型,非代码任务能力塌方。拿它写代码很好,拿它做选择题就别指望了。
granite4:350m-h — 349MB 做到 GPT-3.5 的 58%(平均)
HumanEval 60.0% 超过 GPT-3.5 的 48.1%,WinoGrande 56.7% 达到 69%。但数学只有 21.7%,常识推理 28.3%。体积小、速度快、代码能力突出,适合边缘部署。
qwen3.5:0.8b — 1GB 级别最均衡(平均 51%)
GSM8K 56.7% 几乎追平 GPT-3.5 的 57.1%,ARC 60.0% 达到 70%,HumanEval 43.3% 达到 90%。MMLU 偏低(15.8%),但其他维度都在 GPT-3.5 的一半以上。1GB 以内的模型里它最接近 GPT-3.5。
lfm2.5-thinking — 思维链在数学上有用,但拖累代码(平均 45%)
GSM8K 41.7% 是几个小模型里相对较好的,思维链确实帮助了数学推理。但 HumanEval 只有 25.0%——思维链输出太长,干扰了代码补全。
lfm2.5-350m — 最轻量但能力有限(平均 37%)
379MB 体积最小,能力也最低。GSM8K 只有 10.0%,HumanEval 13.3%。不过 ARC 48.3% 达到了 GPT-3.5 的 57%。
关键发现
体积差 25 倍,能力差不到 2 倍。 以 GPT-3.5 位参考,granite4:350m-h(349MB)平均 58%,qwen3.5:9b(8.9GB)平均 95%。体积差了 25 倍,能力差不到 2 倍。小模型的性价比远超直觉。
代码能力超越 GPT-3.5 的门槛最低。 granite4:350m-h 的 HumanEval 60% 就超过了 GPT-3.5 的 48.1%。一个 349MB 的模型在代码生成上赢了当初震惊世界的 GPT-3.5。代码生成是这些小模型最容易"以小博大"的维度——可能是因为代码训练数据质量高、模式重复性强,而且当年的 GPT-3.5 可能代码能力也还没有太擅长。
数学能力两极分化。 qwen3.5:9b 的 GSM8K 91.7% 远超 GPT-3.5,但 lfm2.5-350m 只有 10.0%。数学推理对模型参数量的要求看来是比代码更高——小模型要么懂、要么完全不懂,中间地带很窄。
通用知识(MMLU)是最难追平的维度。 除了 qwen3.5:9b(63.2%),其他模型都在 42% 以下。MMLU 覆盖 57 个学科,需要广泛的知识储备,这是小模型的天然短板——参数量小意味着能记住的东西可能确实是少了很多了。
专用模型的偏科现象最极端。 omnicoder 的代码 187%、数学 123%,但 MMLU 28%、HellaSwag 33%。专用模型在训练时牺牲了通用能力来强化特定领域,使用时必须清楚它的边界。
总结一下
不同方向、不同领域上,这几个模型各有各的表现。有的虽然模型体积小,但已经达到 GPT-3.5 的很大比例了,非常优秀,只不过速度稍微慢一点;有的虽然速度快,但准确率有差距。各有各的合适场景,设计好自己的需求再选型就好了。
越是四处去炫耀自己厉害的,恐怕往往越未必有那么厉害。
现在看不上本地模型的人,当年或许也曾经为GPT-3.5而赞叹过。