M1 Max 本地跑 MiniMax H3 和 Music 3:从观望到删掉 51GB 权重
最近一段时间,我在 M1 Max 上连续试了两个刚开放权重的 MiniMax 模型:负责视频与音频联合生成的 H3,以及负责音乐生成的 Music 3。
这台机器是 64GB 统一内存、24 核 GPU。参数看起来不差,但面对几十 GB 的模型,“能不能跑”仍然不是看一眼内存容量就能回答的问题。权重能不能装下、运行时有没有 Apple Silicon 路径、真正生成一次要等多久、最后的东西值不值得留下,都是不同的问题。
我也不想为了抢一个“首跑”去下载几十 GB,再花半天证明某个尚未成熟的转换根本不能用。所以这次的过程有不少等待:先看上游实现,找社区量化,等别人给出 Mac 实测,确认有退路以后才动手。两个模型最后都跑通了。然后,我把 51GB 左右的权重删了。
先说最后的判断
M1 Max 64GB 确实可以在本地运行这两个社区方案,但“可以运行”后面要补很多条件。
| 模型 | 本地方案 | 我跑到的结果 | 最后的看法 |
|---|---|---|---|
| MiniMax H3 | mlx-serve 26.8.4 + FL2VA 4-bit |
成功生成带声音的视频,最长成片 10.263 秒 | 技术验证成立,不适合我的日常创作 |
| MiniMax Music 3 | 纯 MLX 运行时 0.1.0 + 8-bit | 成功生成 10 秒和 30 秒立体声音乐 | 已经有可玩性,愿意以后再回来 |
H3 给我的感觉是“竟然真的能在这台 Mac 上动起来”;Music 3 则是“我会愿意再生成一首”。差别不只在速度,也在量化后的质量、内存余量和最终产物是否好用。
H3 的第一步,其实还没有生成视频
我最初注意到 H3 的 Mac 路线,是因为 antirez 的 h3.c。这个项目尝试用原生 C 与 Apple Metal 实现 MiniMax H3 推理,比起套一层通用框架,它更像是在摸清模型怎样落到 Mac GPU 上。
我先在本机编译并运行了测试,最终看到:
1 | ok: 1768 checks |
这个结果很鼓舞人,但它的含义必须说准:它证明了当时那套 Metal 原语、主机侧逻辑和我的机器兼容,不等于我已经完成一次 H3 端到端推理。没有加载完整权重、没有走完文本编码、联合扩散、视频与音频解码,也没有生成可以播放的成片。
这两件事很容易被一句“在 M1 Max 上跑通 H3”混在一起。对我来说,1768 项检查是第一道门,后面的可播放输出才是另一道门。后来 h3.c 继续快速更新,但我没有把早期测试包装成完整生成成绩。
H3 的官方模型页显示,它是一个视频、音频联合生成系统。FL2VA 这一路支持无图、首帧、尾帧和首尾帧条件,输出固定为 24fps,并带 32kHz 立体声音频。这也是它最吸引我的地方:不是先做一段静音视频,再到另一个模型里配音,而是在同一条生成链路里处理画面和声音。
问题也很直接。官方权重很大,原始运行路径主要面向高端 NVIDIA GPU。Metal 原语通过以后,我仍然需要一个真正适合 64GB Mac 的模型版本。
真正跑通 H3,靠的是 4-bit 社区量化
后面我找到了 ddalcu/mlx-serve 26.8.4 和配套的 MiniMax-H3-FL2VA-MLX-Serve-4bit。这套量化权重约 38GiB,连同运行环境大约占 39GiB,终于进入了“下载以后有希望跑”的范围。
但 64GB 不是 38GB 权重加一点缓存就万事大吉。界面给出的媒体工作集峰值估算约 18.05GB;真正加载权重时,系统内存余量已经很紧。模型文件大小、媒体生成峰值和整机内存压力也不能当成同一个数字简单相加,它们描述的是不同阶段。
我先把尺寸和帧数压到很低,用 4-step Turbo 做冒烟测试:
| 设置 | 采样耗时 | 输出 |
|---|---|---|
| 256×256、22 帧、4 steps | 约 28.6~51.7 秒 | 约 0.92 秒 |
| 384×672、39 帧、图生视频 | 143.434 秒 | 约 1.63 秒 |
这次用到的输入只是一张人像写真。39 帧图生视频成功后,端到端这道门才算真正跨过去:完整权重被加载,输入图像参与条件生成,采样与解码完成,最后拿到了可以播放的视频。它和前面的 Metal 检查不是一回事。
短片跑通以后,我自然想把时长拉长。H3 的帧数有自己的窗口结构,长片还会通过窗口衔接延续前一段。我最后用 124 帧窗口生成约 5 秒片段,两个窗口的采样分别用了 490.219 秒和 465.410 秒。拼接后得到 384×672、246 帧、10.263 秒的视频。
十秒成片,采样就用了将近十六分钟,还没算准备、加载和解码。原本我计划继续做 15 秒,看到这个速度以后停了。再多等一轮当然可能成功,但成功本身已经不能回答“值不值得”。
能跑的 H3,为什么没有留下来
H3 最有意思的地方是联合生成。画面里发生动作时,声音也会跟着出现,至少从体验上不是后期随便铺了一条音轨。能在 M1 Max 上看到这条链路完整走通,我已经很满意。
可一旦离开低分辨率冒烟测试,问题就开始叠加。4-bit 量化先损失一部分细节,Turbo 用更少步数换速度,长视频又依赖多个窗口衔接。最终成片里,人物一致性、局部纹理和运动稳定性都明显下降,窗口越长,这些问题越难忽略。
这不是说模型本身只值这个效果。我的结果来自社区量化、低分辨率、少步数和长链路组合,不能代表官方高质量路径。它说明的是另一件更实际的事:在我这台 64GB Mac 上,为了让 H3 装得下、等得起,我做出的妥协已经影响了成片价值。
因此我对 H3 的结论停在了这里:可以跑,端到端生成也成功了,但目前更适合验证 Apple Silicon 本地推理能力,不适合成为我的日常视频工具。
Music 3,我反而先等别人跑通
MiniMax Music 3 开放权重时,我没有立刻下载。
官方的 MiniMax-Music3 体积不小,社区刚开始移植,Mac 上到底能不能完成整条音乐生成链路还没有足够证据。H3 已经让我感受过一次“大模型能塞进内存”和“适合在本地用”的距离,我不想再做第一个吃螃蟹的人。
等到社区出现真实的 Apple Silicon 结果后,我才采用 vanch007/mlx-minimax-music3 0.1.0 与 MiniMax-Music3-MLX-8bit。这套实现运行时是纯 MLX/Metal,不需要 PyTorch 或 CUDA。模型精确大小是 14,167,660,156 字节,完整测试结果是 91 passed。
91 项测试依然不等于音乐一定好听,但它至少说明权重映射、核心算子和运行链路没有在我的环境里悄悄坏掉。真正决定我会不会留下它的,还是生成出来的音频。
十秒冒烟,三十秒才听出意思
第一轮我只生成 10 秒音乐,30 steps:
| 时长 | 生成耗时 | 峰值内存 | 输出 |
|---|---|---|---|
| 10 秒 | 141.016 秒 | 23.338GiB | 44.1kHz 立体声 |
| 30 秒 | 449.452 秒 | 43.059GiB | 实际 30.023 秒,44.1kHz 立体声 |
10 秒主要是确认端到端没有问题。等到 30 秒史诗管弦乐生成完成,我才开始觉得这个模型有了实际意义。它一共用了 449.452 秒,也就是 7 分 29 秒。这个速度当然谈不上快,但我可以接受:丢进去一段描述,去做点别的,回来能听到一段结构完整、动态正常的音乐。
输出文件没有削波,声道、采样率和时长也都正常。这里的 44.1kHz 是社区运行时最终保存出来的 WAV 规格,不是拿它去改写官方模型页标注的原生输出规格。
相比 H3,Music 3 的量化损失没有那么直接地破坏我的使用体验。视频里一张脸稍微漂移、手指多出一节,我马上能看见;管弦乐里的某些质感变化没那么刺眼。更重要的是,30 秒已经足够听出编排和气氛,不需要继续把长度堆到几分钟才能判断它有没有用。
我没有尝试 60 秒。30 秒时峰值已经到 43.059GiB,按趋势继续拉长,对 64GB 统一内存的风险明显上升。系统还能不能勉强撑住是一回事,为一次测试把机器推到内存压力边缘又是另一回事。
两次实验,改了我对“能运行”的定义
以前我说某个模型“能在 Mac 上跑”,容易把重点放在启动成功。现在我会至少拆成四层:
- 代码能编译,Metal 原语或单元测试通过;
- 完整权重能加载,机器不会立刻因为内存失败;
- 端到端生成完成,输出文件的时长、声道、采样率或帧数正确;
- 速度和质量足以让我愿意再用第二次。
h3.c 的 1768 checks 属于第一层;mlx-serve 生成可播放视频以后,H3 才到第三层。Music 3 不只通过 91 项测试,也完成了 10 秒和 30 秒音乐生成,并且让我产生了下一次使用的念头。
这也解释了为什么两个模型都“跑通”,我对它们的判断却不同。H3 更像一场很成功的技术验证,Music 3 已经有了可玩性。
最后还是删了 51GB 权重
H3 4-bit 和 Music 3 8-bit 权重加起来约 51GiB。实验结束后,我删除了两个模型,只保留约 800MB 的代码、虚拟环境、提示词和启动脚本。
这不是因为实验失败。恰恰相反,我已经拿到了想要的答案:M1 Max 64GB、24 核 GPU 能在纯本地条件下跑通这两套社区方案;H3 可以联合生成视频和声音,Music 3 可以做出没有削波的 30 秒立体声音乐。
继续占着 51GiB 磁盘,并不会让这个结论更可靠。保留运行环境和脚本,未来有更好的量化、更省内存的运行时,或者 h3.c 这样的原生实现进一步成熟时,再把权重下载回来就行。
这次最让我满意的不是“64GB 也能塞下大模型”,而是终于把“能跑”问到了最后一层:我会不会真的用它。H3 目前不会,Music 3 会。等下一轮运行时和量化质量再往前走一点,我大概还会回来。
M1 Max 本地跑 MiniMax H3 和 Music 3:从观望到删掉 51GB 权重
https://blog.khan.moe/2026/08/29/M1-Max本地跑MiniMax-H3和Music-3:从观望到删掉51GB权重/




