小模型大对决:Hermes 8B vs Phi-3 vs Gemma 2 vs Qwen2 7B

在消费级硬件上实测 Hermes 8B、Phi-3、Gemma 2 和 Qwen2 7B 四款小模型的表现差异,覆盖推理能力、对话质量、代码生成和中文能力。

目录

  1. 测试环境
  2. 推理速度和资源占用
  3. 通用对话质量
  4. 数学和逻辑推理
  5. 代码生成能力
  6. 中文能力
  7. 工具调用能力
  8. 使用建议

不是每个人都有一台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 社区里有不少在消费级硬件上部署各种尺寸模型的经验分享,可以去看看其他人的踩坑经验。

参与讨论

对这篇文章有疑问或想法?cocoloop 社区有不少开发者在讨论 Hermes 相关话题,欢迎加入交流。

前往 cocoloop 社区 →