MiMo 2.6 蒸馏 9B 能在 Mac 上跑吗?本地部署与代码实测
在 18GB M3 Pro Mac 上运行社区量化的 MiMo 2.6 9B Q3 GGUF,记录部署命令、内存指标的局限,以及没有通过的代码测试。
MiMo-V2.6-Distill-Qwen-9B 可以在本次测试的 Mac 配置上本地运行:Apple M3 Pro、18 GiB 统一内存、社区 Q3_K_M GGUF,搭配 llama.cpp。模型加载和文本生成成功,但我们给它的简短编程任务没有通过全部验收用例。
能装进内存,不代表能可靠完成你的任务。这里的蒸馏 9B 模型也不是在线托管的 MiMo 2.6 Pro。
实际测试配置
| 项目 | 本次配置 |
|---|---|
| 硬件 | Apple M3 Pro,18 GiB 统一内存 |
| 运行时 | llama.cpp build 10470,commit 34af94cd9,Darwin arm64 |
| 量化发布者 | bartowski/MiMo-V2.6-Distill-Qwen-9B-GGUF |
| 仓库版本 | 4371da10c84fb26da3592d4cf312d24aa82b7b65 |
| 文件 | MiMo-V2.6-Distill-Qwen-9B-Q3_K_M.gguf |
| 下载大小 | 4,479,948,320 字节,约 4.17 GiB |
| 上下文与输出上限 | 上下文 2,048 token,最多生成 256 token |
| 采样 | temperature 0,seed 42,关闭预热 |
| 范围 | 本地文本生成,未加载视觉 projector,未测试 Agent 工具循环 |
小米原始模型与社区 GGUF是不同文件。后者经过量化转换,记录时应保留发布者与具体版本,不能称为小米官方 Q3 版本。
下载固定版本并校验
从可信的软件源安装 llama.cpp;本次 Mac 使用 Homebrew。然后在剩余空间足够的目录下载同一版本:
brew install llama.cpp
mkdir -p mimo26-test
cd mimo26-test
curl -fL --retry 2 \
'https://huggingface.co/bartowski/MiMo-V2.6-Distill-Qwen-9B-GGUF/resolve/4371da10c84fb26da3592d4cf312d24aa82b7b65/MiMo-V2.6-Distill-Qwen-9B-Q3_K_M.gguf' \
-o model-Q3_K_M.gguf
shasum -a 256 model-Q3_K_M.gguf
本次校验通过的 SHA-256 为:
d98e54ec9650b6554cfdeea531e2420009207d50471170d0c3640483df8e87eb
除模型文件外,还应为运行时、日志和系统留出磁盘空间。GGUF 文件大小不等于完整内存需求。现在安装的 llama.cpp 可能与本次版本不同,比较结果前记录 llama-cli --version。
发起一次有明确上限的请求
/usr/bin/time -l llama-cli \
-m model-Q3_K_M.gguf \
-c 2048 -n 256 \
--single-turn --temp 0 --seed 42 --no-warmup \
-p 'Write a Python function unique_in_order(values) that removes duplicates while preserving first occurrence order. Inputs are hashable. Return only the function, with no explanation.'
以上是实际执行的命令结构。/usr/bin/time -l 是本次使用的 macOS 测量选项,不能直接假设 Linux 支持同样参数。这里刻意使用较小的上下文,没有验证大上下文、多模态输入或并发请求。
生成了代码,但逻辑没过关
第一次运行返回:
def unique_in_order(values):
if not values:
return []
result = [values[0]]
for value in values[1:]:
if value != result[-1]:
result.append(value)
return result
这段代码只删除相邻重复元素,不会删除隔开后再次出现的重复值。我们实际运行了四组用例:
| 输入 | 预期输出 | 第一次实际输出 | 结果 |
|---|---|---|---|
[] | [] | [] | 通过 |
[1, 1, 2] | [1, 2] | [1, 2] | 通过 |
[1, 2, 1, 3, 2] | [1, 2, 3] | [1, 2, 1, 3, 2] | 未通过 |
['a', 'b', 'a'] | ['a', 'b'] | ['a', 'b', 'a'] | 未通过 |
第二次在提示词中加入非相邻重复元素的明确示例,仍未通过后两组。第三次重复原始提示词,返回了与第一次相同的函数。这是同一个小任务的三次功能检查,不能当作综合准确率,也不能据此断定其他量化版本表现相同。
速度与内存指标应该怎么看
| 运行 | CLI 报告的生成速度 | 进程总耗时 |
|---|---|---|
| 原始提示词 | 14.4 token/s | 27.74 秒 |
| 加入明确示例 | 13.7 token/s | 15.62 秒 |
| 再次使用原始提示词 | 15.3 token/s | 14.49 秒 |
进程总耗时包含启动与加载。前两次运行期间,本机还在构建博客;第三次在构建结束后执行。因此这些只是这台机器上的观测,不能用作严格控制条件的速度对比。任务始终没有通过全部用例,所以我们也没有测得“得到正确结果所需的总时间”。
macOS 报告的最大进程常驻内存约为 1.91、3.86、3.84 GiB。这些是操作系统的进程指标,不是独立 GPU 显存测量,也不是模型完整的统一内存需求。内存映射、共享缓冲区及其他应用都会影响解读。本次结果只支持“在这台 18 GiB Mac 上运行成功”,不支持“只需要 4 GiB”或“任何 8 GiB 显卡都能跑”。
下载测试记录,可查看生成的函数、预期与实际输出,以及测量设置。
下一步怎么试
选择带有明确验收用例的任务,并在执行模型生成的代码前检查代码。如果结果不合格,更换提示词、量化版本或模型都应当作为新的实验单独验证,这些调整并不保证修复上述错误。
如果需要在线推理,MiMo API 教程介绍独立的接入方式,价格指南说明官方直连费率。托管 Pro 与本地 9B 转换版本是不同模型,不能把其中一个的测试结果算到另一个身上。
常见问题
- 这是否证明完整 MiMo 2.6 Pro 能在 18GB Mac 上运行?
- 不能。测试使用的是独立蒸馏 9B 模型的社区 Q3 量化文件,并非托管的完整 Pro。
- 本地代码测试通过了吗?
- 模型成功加载并生成代码,但三次运行都没有通过非相邻重复元素的用例。这只是小规模功能检查,不是综合能力评测。
- 文中的常驻内存就是 GPU 显存要求吗?
- 不是。它是 macOS 进程指标,不代表模型完整的统一内存或 GPU 内存需求。


