不是每个人都有一台8卡A100服务器。大部分个人开发者手里可能就一张 RTX 3090 或者 RTX 4090,显存16-24GB,要在这个硬件条件下跑大模型,7-8B 参数量基本就是天花板了。
好消息是,7-8B 这个量级的模型在过去一年进步非常大。Hermes 3 8B、Phi-3 Mini(3.8B)/ Phi-3 Small(7B)、Gemma 2 9B、Qwen2 7B——这些模型的表现早已不是”能跑就行”的水平,在很多场景下已经真的能用了。
今天就在消费级硬件上,认认真真跑一跑这几个小模型,看看实际表现到底怎么样。
测试环境
统一用一台配置如下的机器:
- GPU:RTX 4090 24GB
- CPU:i9-13900K
- 内存:64GB DDR5
- 推理框架:llama.cpp(GGUF 格式,Q4_K_M 量化)
所有模型统一使用 Q4_K_M 量化,这是质量和速度之间比较好的平衡点。测试时关闭 GPU 加速以外的所有优化,确保对比公平。
推理速度和资源占用
先看最基本的:跑起来之后快不快、吃多少显存。
| 模型 | 量化后大小 | 显存占用 | 生成速度 |
|---|---|---|---|
| Hermes 3 8B | ~4.9GB | ~5.8GB | ~42 token/s |
| Phi-3 Small 7B | ~4.2GB | ~5.1GB | ~48 token/s |
| Gemma 2 9B | ~5.5GB | ~6.5GB | ~38 token/s |
| Qwen2 7B | ~4.3GB | ~5.2GB | ~45 token/s |
四个模型在 RTX 4090 上都跑得很流畅,显存全部控制在 7GB 以内。这意味着即使是 RTX 3060 12GB 也能轻松运行,16GB 显存的笔记本显卡也没问题。
Phi-3 Small 最快,一方面是参数略少,另一方面是它的架构在 llama.cpp 上的优化比较成熟。Gemma 2 因为参数量稍大(9B),速度最慢但差距不算明显。
关键点:在消费级硬件上,这些小模型的推理速度已经能满足实时交互的需求。42-48 token/s 意味着模型每秒能输出30-40个中文字符,对话体验非常流畅。
通用对话质量
让四个模型分别回答20个不同领域的开放性问题,从日常百科到技术解释,人工评分(1-5分制)。
Hermes 3 8B:平均 3.8 分。对话质量在四个模型中最好,回答有层次感,能根据问题的复杂度调整回答的深度。系统提示的遵循度很高,这在小模型中比较少见。缺点是偶尔会”想太多”,一个简单问题给出过于详细的回答。
Phi-3 Small 7B:平均 3.5 分。微软的这个模型很有意思,它在某些场景下的表现能让人忘记这只是一个 7B 的模型。但波动比较大——有时候回答非常精彩,有时候又会给出明显不靠谱的信息。一致性不够好。
Gemma 2 9B:平均 3.6 分。Google 出品,整体表现稳定。回答风格比较中庸——不会特别出彩也不会特别差。在需要事实准确性的场景下,Gemma 2 的幻觉率比其他几个模型低一些。
Qwen2 7B:平均 3.4 分。在英文对话中表现中规中矩,但它的真正战场不在这里(后面聊中文的时候会翻盘)。
数学和逻辑推理
小模型的推理能力一直是短板。7-8B 的参数量,做复杂数学和逻辑推理确实勉强。但有些场景不需要解微积分,初中数学水平的推理能力就够用了。
用50道难度从初中到高中的数学题做测试:
| 模型 | 初中难度正确率 | 高中难度正确率 |
|---|---|---|
| Hermes 3 8B | 78% | 42% |
| Phi-3 Small 7B | 82% | 48% |
| Gemma 2 9B | 75% | 40% |
| Qwen2 7B | 80% | 45% |
Phi-3 在数学推理上领先,这和微软的训练策略有关——Phi 系列在训练数据中加入了大量数学和推理相关的内容。Hermes 3 8B 的数学能力中上,考虑到它不是专门为数学优化的,这个成绩还行。
逻辑推理方面(包括类比推理、因果推理、反事实推理等),四个模型的表现差距不大,都在”简单任务能做、复杂任务吃力”的水平。
一个有趣的发现:让这些小模型做 Chain-of-Thought(思维链)推理时,回答质量会明显提升。特别是 Hermes 3 8B,通过好的系统提示引导它逐步推理,高中难度的数学正确率能从42%提到55%左右。这说明小模型的推理潜力没有被完全激发,提示词工程在这个尺寸下的价值比大模型更大。
代码生成能力
对于很多开发者来说,代码辅助是使用本地模型最常见的场景。
用30个编程任务测试,包括函数实现、Bug修复、代码解释和简单的架构设计:
| 模型 | 函数实现 | Bug 修复 | 代码解释 | 整体 |
|---|---|---|---|---|
| Hermes 3 8B | 70% | 60% | 85% | 72% |
| Phi-3 Small 7B | 75% | 65% | 80% | 73% |
| Gemma 2 9B | 68% | 58% | 82% | 69% |
| Qwen2 7B | 72% | 62% | 78% | 71% |
代码方面差距不大。Phi-3 Small 凭借训练数据中的高质量代码样本略微领先。Hermes 3 8B 在代码解释方面最强,它能用比较清晰的语言解释一段代码的逻辑,这在代码review场景中很有用。
有一个场景需要特别提醒:小模型在处理超过100行代码的任务时,质量会急剧下降。它们的上下文理解能力有限,当需要同时考虑多个函数之间的关系时,经常会顾此失彼。如果你的代码辅助需求主要是”给一个函数签名,让模型实现函数体”这种粒度,小模型完全够用。但如果需要做跨文件的重构,还是得上大模型。
中文能力
这是 Qwen2 7B 的翻盘局。
| 模型 | 中文理解 | 中文生成 | 中文写作 | 中英翻译 |
|---|---|---|---|---|
| Hermes 3 8B | 中 | 中 | 弱 | 中 |
| Phi-3 Small 7B | 弱 | 弱 | 弱 | 弱 |
| Gemma 2 9B | 中 | 中 | 中 | 中 |
| Qwen2 7B | 强 | 强 | 强 | 强 |
中文场景下,Qwen2 7B 碾压其他三个。这个结果一点都不意外——Qwen2 的词表和训练数据都是专门为中文优化的。
具体体感差异有多大?举个例子:让四个模型写一段关于春节习俗的科普文章。Qwen2 7B 写出来的内容自然流畅,用词地道,甚至能用到一些贴切的成语和俗语。Hermes 3 8B 写出来能看但有翻译腔。Phi-3 Small 的中文输出基本就是硬翻英文思维,读起来别扭。Gemma 2 介于 Hermes 和 Qwen 之间。
如果你主要用中文和模型交互,Qwen2 7B 是唯一的选择。甚至可以说,在中文场景下,Qwen2 7B 的体验可以打很多比它参数量大得多的非中文优化模型。
工具调用能力
小模型的 Function Calling 能力普遍不强,但 Hermes 3 8B 在这方面是个例外。
简单工具调用(单函数、2-3个参数)的成功率:
- Hermes 3 8B:82%
- Phi-3 Small 7B:55%
- Gemma 2 9B:48%
- Qwen2 7B:60%
Hermes 3 8B 在工具调用上的优势非常明显。这得益于 Hermes 系列在训练中对 Function Calling 的持续投入——即使是8B的小模型版本,也保留了相当程度的工具调用能力。
如果你想在消费级硬件上跑一个能调用工具的小型 Agent,Hermes 3 8B 目前是最实际的选择。
使用建议
根据不同需求,给出我的推荐:
全能型日常助手 → Hermes 3 8B
对话质量最好、工具调用最强、系统提示遵循度最高。如果你想在本地跑一个功能比较全面的 AI 助手,Hermes 3 8B 是综合最优解。
代码辅助和数学 → Phi-3 Small 7B
代码和数学略强于其他选手,推理速度最快。如果你的需求主要是编程辅助和逻辑推理,Phi-3 Small 是更好的选择。
中文为主的场景 → Qwen2 7B
中文能力碾压级优势。只要你的使用场景涉及中文,Qwen2 7B 是当下7B级别模型中不二之选。
追求稳定不翻车 → Gemma 2 9B
幻觉率最低、表现最稳定。虽然没有哪个维度特别突出,但也不会给你惊吓。适合对输出可靠性有较高要求的场景。
最后说一句:7-8B 模型和 70B+ 模型之间的差距依然很大。如果你的任务复杂度超出了小模型的能力范围,与其死磕提示词优化,不如换个更大的模型。cocoloop 社区里有不少在消费级硬件上部署各种尺寸模型的经验分享,可以去看看其他人的踩坑经验。