85GB 模型塞进 64GB Mac:我用 LocalBrain 跑通 Qwen3.8 Flash Next

85GB 模型塞进 64GB Mac:我用 LocalBrain 跑通 Qwen3.8 Flash Next

2026/08/3112 分钟
分类:技术分享
标签:#AI#本地部署#LocalBrain#Qwen

85GB 模型塞进 64GB Mac:我用 LocalBrain 跑通 Qwen3.8 Flash Next

我得先修正自己之前的判断。

看到 Qwen3.8 Flash Next 的规模时,我的第一反应是:**64GB Mac 不适合。**它有 125B 的主模型,另外还有 51B n-gram embedding 和 4B MTP。即使每个 token 只激活大约 6B 参数,模型文件也不会凭空缩小,普通四比特量化依然会把 64GB 统一内存挤爆。

这个判断对普通量化没有错。但 Atomic 发布的 M64 特制分片,改变了问题的前提。

我下载的是 Qwen3.8-Flash-Next-AD-3.84bpw-IQ4_XS-M64:28 个模型分片,加一份 Q8 视觉投影,实际下载约 79.67GiB。然后我把它交给 LocalBrain,在一台 64GB M5 Pro Mac 上完成加载、文本生成、工具调用、图片理解和持续输出测试。它不是“能打开”,而是真的以约 22.5~26.3 token/s 工作。

这篇文章讲清三件事:这个模型强在哪里;85GB 文件为什么能塞进 64GB Mac;以及为什么我更建议用 LocalBrain 管理这种越来越复杂的本地模型。

Qwen3.8 Flash Next 在 Mac 上本地运行的概念封面

它不是普通的“125B 大模型”

Qwen 官方模型卡把 Qwen3.8 Flash Next 定义为带视觉编码器的多模态 MoE 模型。主模型约 125B 参数,但每个 token 只激活约 6B;48 层里放了 512 个专家,每轮选择 10 个路由专家,再加 1 个共享专家。原生上下文是 262,144 token,还可以扩展到 1,000,000 token。

这里最重要的不是“参数多”,而是它把不同类型的参数放在了不同的位置:

结构 规模与作用 本地运行影响
主 MoE 模型 125B,总激活约 6B 决定主要计算量,活跃专家必须快速访问
n-gram embedding 额外约 51B 本质更像查找表,适合按地址从 SSD 读取
MTP 约 4B 用于多 token 预测,改善生成效率
视觉编码器 图片到文本理解 需要独立的 mmproj 文件

官方公布的原始模型成绩很亮眼:GPQA Diamond 91.7、LiveCodeBench v6 91.9、SWE-bench Pro 62.5、SWE-bench Multilingual 81.0、Toolathlon Verified 73.5;视觉侧的 RealWorldQA 是 88.5,MathVision 在官方两种评测设置下是 90.6 / 95.7。

Qwen3.8 Flash Next 官方评测数据图:涵盖科学推理、编程、代码智能体、工具调用、指令遵循、移动端操作和视觉理解

但这些数字必须加一句粗体说明:**它们是 Qwen 公布的原始模型参考成绩,不是我这份 3.84bpw 量化在 Mac 上重新跑出的分数。**量化会带来损失,运行框架、提示模板、上下文和采样参数也会改变结果。把厂商跑分直接写成本机成绩,是最容易制造误导的一步。

我也没有只挑最好看的分数。官方表里,HLE 是 35.9,低于同表 Claude Opus 4.6 的 40.0;NL2Repo-Bench 是 48.1,也低于同表最佳结果 54.2。图中保留这两项,就是为了提醒自己:它在科学推理、竞赛编程、工具调用和视觉理解上很强,不等于每个任务都领先。

为什么现在要做这种架构?过去的稠密模型几乎每个 token 都要触碰大部分权重,能力上去,单 token 成本也跟着上去。MoE 先把“总容量”和“每轮计算量”拆开,Qwen 这一次又用 n-gram 查找表把一部分容量换成更便宜的存储访问。对模型厂商和云服务商来说,6B 激活意味着更低的推理成本和更高的单位算力吞吐;对个人用户来说,代价则从纯计算变成了量化质量、内存余量、SSD 和运行时是否配合。

因此,受益方不只是一群喜欢折腾本地模型的人。Qwen 用这次开放权重提前验证下一代架构;量化发布者和 llama.cpp 获得新的技术入口;Apple Silicon 用户得到了一条原本只有大显存服务器才有的能力路径。被挤压的,是“模型文件多大就必须准备多大内存”的旧部署逻辑,以及按 token 计费、却无法保留私有数据的单一路径。硬件厂商很少会主动强调这一点,因为它恰好说明:有时一块更大的 SSD 和更聪明的分片,比继续堆统一内存更有效。

提示 Qwen3.8 Flash Next 默认会进入思考模式。官方推荐思考模式使用 temperature=1.0、top_p=0.95、top_k=20、min_p=0、presence_penalty=0;非思考模式使用 temperature=0.7、top_p=0.8、top_k=20、min_p=0、presence_penalty=1.5。本地软件若只切换“思考开关”却不联动采样参数,效果会明显偏离官方设定。

真正的突破,是把 39GB 留在 SSD

Atomic 的做法不是传统意义上的“把算不动的层扔到硬盘”。普通专家权重每个 token 要产生 GB 级流量,从 SSD 临时取几乎注定会慢死。n-gram 表不同:模型根据最近的 token 计算固定地址,每轮只读取极小一部分。

此前的 CPU/GPU offload 通常只是把放不下的权重搬到另一层存储,计算时仍要反复传输,所以越过内存边界后速度会断崖式下降。M64 分片的关键差别,是留在 SSD 的不是高频参与矩阵计算的专家,而是一张按确定地址读取的查找表。它不是更激进的 offload,而是利用模型结构,把不该常驻的东西从一开始就隔离出去。

早在 2020 年 M1 把 CPU、GPU 和统一内存放进同一套封装时,本地 AI 就少了一次显存与主存之间的来回搬运;但统一内存仍有物理上限。M64 这次并不是继续扩大那块内存,而是先判断哪些参数根本没必要进去。

Atomic 的量化说明给出的参考是:在 36 token/s 时,这部分随机读取约 3MB/s,NVMe 响应时间小于单 token 的 28ms 预算。更关键的是,发布者把 n-gram 表单独放进一个 GGUF 分片。Apple Silicon 上开启 mmap 后,约 39GB 查找表可以留在 SSD,而不是和 Metal 权重一起被锁进统一内存。

这就是 M64 后缀真正有价值的地方。

Atomic M64 内存与 SSD 分流示意图:84.9GB 模型中约 45.8GB 进入统一内存,约 39.1GB n-gram 查找表留在 SSD

Atomic 量化 常驻内存 留在 SSD 总体积 Mean KLD 同 Top-1 PPL 比值
3.84bpw IQ4_XS M64 45.8GB 39.1GB 84.9GB 0.2277 82.68% 1.102
4.27bpw Q4_K_M M64 54.5GB 38.4GB 92.9GB 0.0842 89.49% 1.026

如果只看质量,Atomic 明确推荐 4.27bpw:KLD 更低、Top-1 一致率更高。但对 64GB 机器,我反而选了 3.84bpw。原因很现实:4.27bpw 比 3.84bpw 多吃 8.7GB 常驻内存,系统、上下文、计算缓冲和视觉投影都还要空间。质量再好,第一次解码就内存不足,也没有意义。

警告 这不是所有 80GB~90GB GGUF 都能在 64GB Mac 上跑的通用技巧。它依赖这个模型特殊的 n-gram 结构、Atomic 的独立分片,以及新版 llama.cpp 对该架构的支持。普通大模型照搬同样参数,结果大概率仍是内存溢出。

我在 LocalBrain 里实际跑出了什么

本次环境是 LocalBrain 1.2.23、llama.cpp b10705、64GB M5 Pro。所有层交给 Metal,mmap 开启,lazy load 开启,fit 关闭,上下文先定在 32K;视觉测试使用 Q8 mmproj。这套配置不启用 DFlash2——它对当前模型和这条 llama.cpp 路径没有实际加速。

这也和我过去在 Mac 上跑 7B、27B、70B 量化的经验不同:以前主要问题是“权重能不能全部放进统一内存”,上下文通常是第二顺位;这一次模型文件本来就大于物理内存,部署能否成立首先取决于分片语义,然后才轮到量化位宽、上下文和速度。也就是说,光看模型名、参数量或 GGUF 文件大小,已经不足以判断一台 Mac 能不能跑。

加载耗时约 14~18 秒。LocalBrain 运行时显示模型占用约 51GB,总内存约 60.1GB,只剩约 3.9GB,但没有进入 swap。几组结果如下:

测试 结果
简单计算 29 × 31 = 899,回答正确
文本生成 25.84 token/s
工具调用 26.33 token/s,正确生成 get_weather({"location":"上海"})
图片理解 24.13 token/s,能识别黑底上的橙色 LB 标志
持续生成 24.51 token/s,长输出过程稳定
LocalBrain 界面实测 约 22.5 token/s,提示词已占 4,499 token

Atomic 在 64GB M5 Max 上公布的参考是 36 token/s。我的 M5 Pro 达到它的约 62%~73%,考虑 GPU 规模、内存带宽和真实提示词长度,这个速度是合理的,不是异常偏慢。

上一次我把 70B 级量化塞进 Mac,主要是在量化位宽和上下文之间做减法;这一次则多了一层“按参数用途分配存储”。两者表面上都是本地部署,真正决定成败的环节已经变了。

还有两个边界必须说清。第一,3.84bpw 的量化误差确实高于 4.27bpw,所以我把它定位成“64GB 上可用的能力上限”,不是最佳质量版。第二,这类模型不适合一上来就把原生 262K 上下文拉满;32K 已经能覆盖代码、资料分析和多轮工具任务,同时给系统留出最后的安全空间。

为什么我更愿意把它交给 LocalBrain

命令行当然能跑。问题是,这个模型已经不再是一条 llama-cli -m model.gguf 能讲完的东西:28 个分片是否完整、视觉投影是否匹配、mmap 有没有打开、fit 是否误判、上下文会不会顶爆内存、聊天模板有没有加 --jinja,任何一个细节错了,都可能得到“模型下载完了,但不能用”的结果。

LocalBrain 的价值不只是提供一个聊天窗口。它更像是 Mac 上的本地多模态模型与工具中枢:统一下载和管理语言、语音、图像、视频模型;按本机内存和模型结构安排运行参数;把本地能力通过 MCP 交给其他 AI 软件调用;任务结束后再回收资源。之前我已经完整介绍过它的定位和界面,可以继续看:LocalBrain:把 Mac 变成私有 AI 盒子

历史上,本地模型管理器大多围绕“一个模型文件、一个后端、一个聊天窗口”设计。多模态模型、分片 GGUF、思考模式和工具调用叠到一起之后,继续让用户手工维护每条启动命令,只会把部署成本从硬件转移到排错时间。LocalBrain 之所以要把模型、运行时和本地工具放在一起,动机就在这里:它争的是本地能力的统一入口,而不只是又做一个聊天客户端。

LocalBrain 的模型发现与下载界面

这次 Qwen3.8 Flash Next 的实测,把这种管理层的价值放大了。对于特殊分片模型,软件需要知道“文件总大小”和“真正会常驻内存的大小”不是同一个数字;对于思考模型,软件还要知道开关背后应该联动一组采样参数;对于多模态模型,它还要把主模型和 mmproj 视为一个完整交付物。

LocalBrain 的本地对话界面

LocalBrain 目前仍在快速迭代。我这次没有盲信自动值,而是为这个特殊 M64 量化固定了 32K 上下文、单并发、512 batch、mmap、lazy load 和 fit off。这套实测结果会继续反哺它的自动参数逻辑。我的目标不是让用户背下这些参数,而是让以后加入的语言模型尽可能做到:识别结构、估算常驻内存、给出安全上下文,然后直接运行。

我的结论:能跑,而且有实际使用价值

Qwen3.8 Flash Next 最吸引我的地方,不是“125B 打败了谁”,而是它把本地模型的边界往前推了一步:总文件约 85GB,不等于 85GB 都必须进内存;每 token 激活 6B,也不等于它只需要一台 6B 模型的机器。模型结构、量化策略、分片方式、运行时和 SSD,第一次变成了同一个部署问题。

对 64GB Apple Silicon 用户,我的建议很明确:

  1. 选择 Atomic 的 3.84bpw M64,别因为 4.27bpw 质量更好就忽略内存余量。
  2. 准备至少 90GB 可用 SSD 空间,使用新版 llama.cpp,保持 mmap 和 lazy load,关闭自动 fit。
  3. 先用 32K 上下文和单并发跑通,再增加预算;不要把官方 262K 当作 64GB Mac 的默认值。
  4. 如果不想手工维护分片、视觉投影和启动参数,直接用 LocalBrain 最新版管理。

它不会把 64GB Mac 变成训练服务器,也不会让 3.84bpw 等同于原始精度。但在一台安静、私有、无需按 token 付费的个人电脑上,以 22~26 token/s 跑起一个具备编程、智能体、工具调用和视觉能力的超稀疏模型——这已经不是演示,而是可以进入真实工作流的本地 AI。

参考资料

分享到:

相关文章

返回首页