← Silent Star / 博客首页 2026.08.11 · 本地模型实验记录 № 01

Apple Silicon · 50 unique prompts · deterministic scoring

Glimmer vs
Gemma 4 12B

两个模型跑在同一台 Mac 上,题目和评分框架保持一致。一个用能力换时间,一个用速度换上限。

Head-to-head
3/1 + 1 tie

五项本机实测,Glimmer 3 胜,Gemma 1 胜,代码生成打平。

Verdict / 结论

Glimmer 的综合能力更强,尤其是复杂指令、推理与多模态;Gemma 4 12B 更快、更轻,工具调用更稳,完成有效对照只用了前者约三分之一的时间。

我为什么要自己跑一遍

本地模型的选择常被参数量和排行榜分数带着走。部署以后,还得看它能不能照着复杂指令做事,函数调用会不会出错,长思考能否及时停下,写出的代码又能不能通过测试。

这次我选了五组题。IFEval 看指令遵循,BFCL 测工具调用,MMMU 加入图片,LiveBench 负责综合推理,BigCodeBench 把生成代码送进沙箱执行。

我把两个模型部署在同一台 Apple Silicon 机器上,都只开一个实例和一个并发。题目跑完以后,我再逐条解析停止原因、耗时和评分日志。

怎样保证同题可比

评测使用 Inspect AI 0.3.255 和 Inspect Evals 0.16.0。为了尽量减少模型之外的变量,我固定了整套协议。

  • 每项抽取 10 题,共 50 道不重复题目;
  • sample_shuffle=42,温度为 0;
  • 五项样本 ID 与顺序逐一核对,完全一致;
  • 使用 Inspect 自带的确定性评分器,不用另一个大模型主观打分;
  • BigCodeBench 生成代码只在无网络 Docker 沙箱中执行;
  • 所有计入成绩的评测均为 10/10 完成,样本错误为 0。

输出上限随任务复杂度变化。BFCL 为 1024 token,IFEval 与 MMMU 为 2048 token,LiveBench 和 BigCodeBench 的最终有效上限为 4096 token。Gemma 使用 Google 官方 Gemma 4 12B 模型及其官方 QAT Q4_0 GGUF,两套服务的上下文均为 32768。

边界提醒每项只有 10 题。这组结果能暴露接口、截断和速度差异,适合本机选型与部署验收。它不能代替完整排行榜成绩。

五项成绩,3 胜、1 负、1 平

Benchmark matrix / 01 同题、本机、确定性评分 Glimmer Gemma 4
Glimmer 与 Gemma 4 12B 五项本机同题最终得分;分数越高越好。
能力 / Benchmark GlimmerLocal runtime Gemma 4 12BQAT Q4_0
01指令遵循IFEval · final_acc 0.917WIN 0.600
02工具调用BFCL · accuracy 0.900 1.000WIN
03多模态MMMU CS · accuracy 0.400WIN 0.200
04综合推理LiveBench · accuracy 0.600WIN 0.100
05代码生成BigCodeBench · pass rate 0.400TIE 0.400TIE
5 benchmarks × 10 promptsHigher is better ↑← 左右滑动查看完整成绩 →

IFEval 的 final_acc 是综合指标,不能简单翻译成“答对几题”。附加指标也呈现同样差距。Glimmer 的 prompt strict accuracy 为 0.900,instruction strict accuracy 为 0.933,Gemma 两项均为 0.600。

Gemma 靠工具调用拿下一局

Glimmer / BFCL

0.900

5 分 31 秒 · 0 截断

Gemma 4 / BFCL

1.000

1 分 54 秒 · 0 截断

BFCL 会检查模型选了哪个函数,也会核对传入参数。两个模型的 10 个样本都产生了框架可识别的原生工具调用,没有输出截断。Gemma 的 10 个样本全部正确。

Gemma 只用了 1 分 54 秒,Glimmer 用了 5 分 31 秒。模型如果主要服务于 Agent、自动化脚本或桌面助手,这段延迟差异每天都能感受到。

最大差距在于能不能停止思考

长思考的收敛能力拉开了本轮最大差距。Gemma 在 MMMU 的 10 道题中有 8 道写满 2048 token。到了 LiveBench,即使上限升到 4096,仍有 9 道写满。

Glimmer
4/10
Gemma 4
9/10
Table 02 / 输出达到 token 上限的样本数
评测上限GlimmerGemma 4
IFEval20481/104/10
BFCL10240/100/10
MMMU20483/108/10
LiveBench40964/109/10
BigCodeBench40964/104/10

部分 Gemma 输出把预算几乎全部花在内部推理上,最后答案为空或不完整。这类输出会被评分器判错。LiveBench 的 0.100 里,有多少是推理本身不会,有多少是没来得及交答案,这组小样本分不开。当前日志至少说明一件事。在这套 llama.cpp 配置与输出预算下,它经常无法及时把推理收束成可评分答案。

Glimmer 也有同类问题,但程度明显较轻。同样的最终有效预算下,它在 LiveBench 得到 0.600,截断数是 4/10。

代码生成打平,也都不够稳定

BigCodeBench 会把生成结果送进 Docker 沙箱执行隐藏测试。两个模型最终都是 0.400,10 个样本中各有 4 个通过。

这个平局有点出乎我的意料。Glimmer 在推理评测里的优势,没有直接变成更高的代码通过率;Gemma 虽然在长推理上落后,代码任务也没有继续掉队。

用它们写初稿、找思路都可以,直接提交还不行。4/10 的通过率意味着项目测试和人工审查都省不掉。

多模态部署,先确认图片真的进了模型

Gemma 第一次跑 MMMU 时,服务直接返回“不支持图像输入”。模型本身支持视觉,失败出在部署参数。我当时只加载了主 GGUF,漏掉了配套的视觉投影文件 mmproj

补上同一官方版本的 mmproj 后,我先用一个 MMMU 样本做图片输入冒烟测试。图片经过 OpenAI 兼容接口进入模型并完成评分,我才重新跑完整 10 题。第一次基础设施失败没有计入模型成绩。

Deployment lesson接口返回 200、模型能输出文字,仍然不能证明视觉输入已经正常。给多模态模型下结论之前,先拿一张真实图片走完整个请求。

Gemma 跑完只用 1 小时 43 分

Table 03 / 同机成功计分轮耗时
评测GlimmerGemma 4 12B
IFEval38 分 01 秒18 分 24 秒
BFCL5 分 31 秒1 分 54 秒
MMMU 最终完整轮40 分 26 秒18 分 01 秒
LiveBench 最终协议49 分 27 秒 + 71 分 31 秒31 分 27 秒
BigCodeBench 最终协议52 分 52 秒 + 48 分 08 秒33 分 11 秒
合计5 小时 05 分 56 秒1 小时 42 分 57 秒

Glimmer 的 LiveBench 与 BigCodeBench 采用“保留初轮自然停止题,再把截断题提升到 4096 token 复测”的校正方式;Gemma 直接用 4096 token 跑完整 10 题。每题最终有效上限一致,但耗时结构不完全相同。这张表记录的是实际部署成本,不能替代严格的纯吞吐基准。

即便考虑协议差异,Gemma 的速度优势仍然明确。它更适合对等待时间敏感的交互场景;Glimmer 则是在用更多时间,换更高的综合成功率。

到底该选谁

选择 Glimmer,如果你更在意

  • 复杂格式与多条件指令;
  • 综合推理的一次成功率;
  • 图像与文本结合的分析;
  • 可以接受更高延迟。

选择 Gemma 4,如果你更在意

  • 本地 Agent 与函数调用;
  • 更快的交互响应;
  • 更小的模型与运行成本;
  • 任务结构化、结果可验证。

代码生成方面,这 10 题没有分出胜负。如果代码是核心用途,我会换成与真实技术栈一致的私有测试,直接拿项目 issue、单元测试和实际修复任务来跑。

更稳妥的后续评测,则是把每项扩大到至少 50 题,再加入一套真实工作流数据。公开评测告诉你模型的通用能力,私有评测才能回答“它对我的任务到底有没有用”。

如果只能保留一个,我会把 Glimmer 留作主模型。Gemma 也值得留下。它可以处理高频、结构化、可验证的任务,复杂推理和多模态请求则交给 Glimmer。

模型使用 Gemma 4 12B QAT Q4_0,本机运行时为 llama.cpp,评测日期是 2026-08-11。本文所有分数均来自同机实际日志,未混用厂商榜单。

文章目录9
Silent Star约 6 分钟