Skip to main content
·
Versun
·9 min read

Nowledge Mem 本地模型甜点位:12B、26B 还是 35B?

常驻选 Qwen 35B,按需加载选 Gemma 26B,内存紧张选 Gemma 12B。Versun 用真实记忆任务测出了三者的速度与内存取舍。

转载说明:本文经作者授权,转载自 Versun(@VersunPan)发表于 X 的实测文章《给 AI 装“记忆大脑”,Gemma 12B、26B 和 Qwen 35B 谁更适合?结果有点反常》。测试数据、结论与第一人称经验均来自原作者;Nowledge Labs 仅做格式整理、术语统一与文档链接补充。阅读原文

一句话答案

模型常驻时选 Qwen3.6 35B-A3B;每次按需加载选 Gemma 4 26B-A4B;先给浏览器和 IDE 留内存,就选 Gemma 4 12B。

选择指南

别按参数量选,先看模型会不会常驻。

反常之处在取舍:12B 少占约 7 GiB,热态任务却慢了约 2.8 倍;26B 与 35B 的 RSS 和热态耗时几乎相同,真正拉开选择的是冷加载策略。

保持常驻

Qwen3.6 35B-A3B MLX

在这台 64 GB Mac 上,热态任务和生成速度最快。

2.64 秒 · 78.1 tok/s
按需加载

Gemma 4 26B-A4B MLX

每次冷启动时,总等待低于 Qwen 的 14.19 秒。

加载 + 任务 10.85 秒
节省内存

Gemma 4 12B GGUF

比两个大模型少约 7 GiB,但热态任务较慢,需要 7.38 秒。

总 RSS 10.65 GiB

三个模型只是在同一套固定九项记忆任务中连续三轮得到 3/3,不能据此推断通用质量相同。16/24/32 GB 建议来自这台 64 GB 机器的 RSS 数据,并非对应机型实测。

为什么现在重测本地模型

Nowledge Mem 从一开始就是 Local First。早期版本可以完全依靠 App 内置的小模型处理记忆。0.5 之后,Mem 开始持续整理对话、合并变化、处理冲突,也要服务 Background Intelligence、AI Now 和 Timeline。任务更长、更复杂,内置 4B 模型逐渐不够用,订阅服务或 BYOK 成了很多人的日常选择。

从 0.10 开始,本地运行时从早期的 M1 Mac 扩展到桌面端与 Linux headless;官方 Docker 镜像提供 CPU、CUDA 和 Vulkan 版本。内置多模态模型的视觉能力也已经用于 Library 文档解析。App 之外,Mem 还支持 Lemonade、Ollama 和 LM Studio;社区贡献者 abn 完成了 Lemonade 集成中的大量工作。

Versun 没有跑通用排行榜。他直接用 Nowledge Mem 的记忆整理、更新、噪声过滤和长上下文任务,回答一个更具体的问题:今天要长期用本地模型,质量、等待时间和内存应该怎么取舍?

为什么我要给 Nowledge Mem 换成本地模型?

最近我把 Nowledge Mem 的记忆处理从云端模型换到了本地模型。原因很简单:我经常订阅不同的 token plan,导致给 Mem 配置的模型提供商很不稳定。token 经常用完,然后 Mem 的智能处理就停了,有时候好几天才发现。

所以我决定改用本地模型,不再担心额度问题。但哪个本地模型更适合 Nowledge Mem?

先说测试环境:

  • Mac mini,M4 Pro,64 GB 统一内存
  • LM Studio 0.4.19+2
  • GGUF Runtime:llama.cpp 2.25.2
  • MLX Runtime:1.10.1

在这轮完整测试前,我还做过一轮初步对比。Nowledge Labs 的 Wey 看到后,也在讨论线程里追问了上下文、内存与整理过程,才有了这次更完整的测试。

基础测试

首先固定所有测试参数:

  • 上下文长度:32,768 token
  • Temperature:0
  • Top P:1
  • Thinking / Reasoning:关闭
  • GPU Offload:最大
  • 并发请求:1
  • 模型并行槽位:默认 4
  • 最大输出:700 token

统一的系统提示词:

你是长期记忆整理器。只保留未来仍然有用的信息;区分临时闲聊、旧信息和当前信息;不得把临时天气、情绪或一次性寒暄保存为长期记忆。严格按用户要求输出 JSON,不要 Markdown。

测试场景包括:

  • 从聊天中提取长期记忆
  • 正确区分新记忆和旧记忆
  • 把旧记忆标成 superseded
  • 把新记忆标成 current
  • 不把“今天天气很热”“刚喝了一杯水”存进长期记忆
  • 连续三次输出合法 JSON

测试提示词如下:

请从下面对话中整理长期记忆。 对话: 用户:我主要使用中文沟通。 用户:以前 AI Builders Digest 使用 agent_browser 后端。 用户:从今天开始,正式改用 opencli,agent_browser 不再作为当前后端。 用户:自动化任务每次最多处理 20 条内容。 用户:任何发布或对外发送动作必须先征得我的确认。 用户:我希望记忆整理时保留被新决定替代的旧决定,并明确标为 superseded。 用户:今天天气真热。 用户:刚才喝了一杯水。 返回一个 JSON 数组,每项必须且只能包含: {"memory":"简洁记忆内容","status":"current 或 superseded","kind":"preference、decision 或 rule"}

这条提示词测了四件事:

  1. 提取:能不能找全六条长期信息——中文偏好、旧后端、新后端、每次最多 20 条、发布前确认、保留旧决定的整理偏好。
  2. 更新:能不能识别 opencli 已经替代 agent_browser
  3. 保留历史:旧决定不能直接消失,而要标成 superseded
  4. 过滤噪声:天气和喝水不能混进长期记忆。

每个模型连续执行三次完全相同的任务。每次都检查 JSON 能否正常解析,并记录整体耗时、首字延迟(TTFT)、生成速度、JSON 合法性和质量检查结果。

最后取三次耗时的中位数。这里有个重要说明:第二、三次会受益于 LM Studio 的提示词缓存,所以表格里的“记忆整理耗时”代表模型常驻后的日常服务速度,不是每次重新加载模型的冷启动速度。

要拿到满分,输出必须同时满足九项检查:

  1. JSON 数组里正好有六条记忆。
  2. 保存了默认使用中文的偏好。
  3. 保存了旧的 agent_browser 决定。
  4. 旧决定状态是 superseded
  5. 保存了新的 opencli 决定,而且状态是 current
  6. 保存了每次最多处理 20 条的规则。
  7. 保存了发布前必须确认的规则。
  8. 保存了“被替代的旧决定也要保留”的偏好。
  9. 没有保存天气和喝水。

三个模型在这套固定提示词上连续三轮都通过了全部检查,所以最终都是 3/3。这个结果只说明它们通过了这一个受控任务,不能推断三者的通用质量相同。

长上下文测试

我又生成了一段很长的项目日志,把下面这条信息藏在正中间:

关键长期事实:项目代号是青岚-7391,发布前必须由用户确认。

前后各重复 180 次这句干扰内容:

项目日志:本轮检查正常,没有新增长期决定;继续遵循既有流程。

最后只问模型:“请只回答项目代号,不要解释。”三个模型都回答了“青岚-7391”。表格里的“长文首字”,就是模型收到整段长文本后吐出第一个 token 的时间。

测 RSS 峰值

RSS 可以粗略理解为进程当时真正驻留在物理内存里的大小。这次用脚本按下面的流程采样:

  1. 卸载全部模型。
  2. 等推理进程完全退出。
  3. 每 0.08 秒读取一次 macOS ps 的 RSS。
  4. 先连续采样 10 次,得到 LM Studio 空载基线。
  5. 开始加载模型并持续采样。
  6. 模型加载后空闲等待 1.5 秒。
  7. 连续执行三轮记忆任务。
  8. 执行一次长上下文任务。
  9. 任务结束后再观察 0.8 秒。
  10. 取整个过程中的最高值。

分别记录新启动的模型推理进程 RSS、LM Studio 主进程和全部子进程的 RSS 总和,以及相对空载基线增加的 RSS。

RSS 相加可能重复计算进程间共享的内存页,因此这个数字适合横向比较模型,不等于系统可用内存的精确减少量。

最终结果

模型磁盘大小冷加载记忆整理生成速度长文首字模型 RSS 峰值LM Studio 总 RSS 峰值质量
Gemma 4 12B GGUF7.15 GB3.82 s7.38 s29.4 tok/s36.79 s9.33 GiB10.65 GiB3/3
Gemma 4 26B-A4B MLX15.64 GB8.17 s2.68 s70.6 tok/s13.83 s16.38 GiB17.69 GiB3/3
Qwen3.6 35B-A3B MLX20.43 GB11.55 s2.64 s78.1 tok/s9.87 s16.42 GiB17.72 GiB3/3

三个模型都正确提取了六条长期记忆,也都过滤掉了天气、喝水等临时信息。因此这轮没有出现“谁更聪明”的明显分差,主要差距在速度和内存。

为什么 35B 反而比 12B 快?

因为 Qwen 35B-A3B 和 Gemma 26B-A4B 都是 MoE 模型。

名字里的 A3B、A4B,可以粗略理解为:虽然模型总参数很大,但每次推理只让其中一部分专家出来工作;Gemma 12B 没有采用这种设计。

简单说,35B 像一家有很多员工的大公司,但每次只叫 3B 左右的专家小组开会。它的知识容量更大,实际计算量却没有参数名看起来那么吓人。

三个模型怎么选?

  • **只想选一个:Qwen3.6 35B-A3B MLX。**这是我现在最推荐的默认模型。记忆整理约 2.64 秒,生成速度 78.1 tok/s,长上下文首字也最快。对于 Nowledge Mem 这类需要长期读取聊天、合并记忆、处理冲突的工具,它的综合体验最好。但它冷加载需要 11.55 秒,最好让模型常驻,不要每处理一条记忆就卸载。
  • **经常加载和卸载:Gemma 4 26B-A4B MLX。**它的冷加载加记忆整理合计约 10.85 秒,比 Qwen 35B 的约 14.19 秒更省时间。生成速度也有 70.6 tok/s。如果记忆工具不会让模型常驻,我会优先选它。
  • **基于 RSS 推断,32 GB 到 64 GB:Gemma 4 26B-A4B MLX 4-bit。**它和 Qwen3.6 35B-A3B 的热态性能接近,但不同任务可能激活更多 Qwen 专家,因此 26B-A4B 是较保守的选择。这轮没有在 32 GB 机器上直接测试。
  • **基于 RSS 推断,低于 32 GB:Gemma 4 12B GGUF。**LM Studio 全进程峰值约 10.65 GiB,比两个大模型少约 7 GiB。如果还要同时运行浏览器、IDE、微信和其他桌面应用,12B 会留下更多余量。这轮也没有在 16 GB 或 24 GB 机器上直接测试。

MLX 还是 GGUF?

这轮不能简单说“MLX 一定比 GGUF 快”,因为三个模型的架构不同,并不是同一权重的格式对照实验。

但有一个实际结论很清楚:在 Apple Silicon 上,Gemma 26B-A4B 和 Qwen 35B-A3B 的 MLX 版本已经非常能打。

  • 如果只在 Mac 上使用,我会优先 MLX。
  • 如果还要把模型复制到 Windows、Linux 或其他 llama.cpp 工具里,再选 GGUF。

最后

以前我一直以为参数更小的模型运行更快。这次实测却刚好相反:

  • 12B 最省内存,但最慢。
  • 26B-A4B 和 35B-A3B 反而速度更快。

当然,这只是一组固定提示词下的受控测试,不代表 Qwen3.6 35B 在所有问题上都一定更聪明。但至少在“本地记忆管理”这件事上,它现在是我这台 Mac 的最佳选择。

Nowledge Labs 的展望

这次实测给的是今天的答案,不是永久结论。我们期待 4B 左右的模型有一天能再次覆盖记忆整理、变化合并、冲突处理和背景智能,但目前没有时间表,也不能从这组三模型测试推出这个结果。

本地多模态链路已经用视觉能力处理 Library 文档。PII 过滤和音频会议处理仍是后续方向,不属于本次 benchmark 的已交付或已验证范围。

如果你也准备把模型请求留在自己的设备上,可以继续阅读 Nowledge Mem 文档:用完全本地的模型运行 Nowledge Mem


原始讨论:

© 2026 Nowledge Labs. 构建知识层。