如何在普通 Mac 上用两 GB 内存运行 260 亿参数模型
如果你有一台配备 M2 芯片和 8 GB 统一内存的基础款 MacBook Air,运行现代语言模型就会变成一场噩梦。即使是经过 4-bit 量化后相对较小的 140–200 亿参数模型,也需要 10 到 16 GB 的内存。系统开始大量将数据交换到磁盘,生成速度下降到每秒不到一个 token,macOS 界面开始卡顿。
工程师 Andrey Mikhailov 用一个非常规的工程技巧解决了这个问题。他从零开始编写了一个名为 TurboFieldfare 的运行时,仅用 2 GB 内存就能运行 Google 的指令模型 Gemma 4 26B-A4B。
架构的主要技巧是什么
Gemma 4 26B-A4B 基于混合专家(MoE)架构构建。它共有 260 亿参数,但在处理特定 token 时并非所有层都会被激活——只有约 38.8 亿参数参与计算。
通常,llama.cpp 或 MLX 等运行时在开始工作前会将整个模型的权重加载到内存中。对于 4-bit Gemma,这大约需要 14.3 GB。TurboFieldfare 的做法不同:
- 模型 1.35 GB 的共享核心和用于上下文的 FP16 KV-cache 保存在持久内存中。
- 模型每层的路由器确定当前 token 需要哪 8 位专家。
- 程序检查内存中的本地专家缓存(16 个槽位,采用 LFU 算法)。
- 如果所需的专家不在内存中,运行时通过并行系统调用直接从 SSD 加载到 Metal 可访问的缓冲区中。
当 GPU 计算共享专家分支时,并行 CPU 线程负责从存储中读取缺失的权重。结果,峰值内存消耗控制在约 2 GB 以内。

不依赖 llama.cpp 和 MLX
该项目完全使用 Swift 6.2 和 Metal 4 编写。作者没有围绕现有 C++ 库创建另一个封装层,而是为量化、矩阵乘法(GEMV)、注意力机制、MoE、RMSNorm 归一化和 RoPE 编写了自定义 GPU 内核。
代码库包含四个可直接使用的工具:
TurboFieldfareMac— 一个使用 SwiftUI 和 AppKit 构建的原生桌面应用程序,具有集成聊天、内存监控和生成设置功能。TurboFieldfareCLI— 一个用于批量生成和通过 JSON 消息文件进行脚本驱动执行的命令行界面。TurboFieldfareServer— 一个 API 与 OpenAI Chat Completions 规范兼容的本地服务器(http://127.0.0.1:8080/v1)。TurboFieldfareRepack— 一个用于将权重从 Hugging Face 直接流式下载到自定义.gturbo格式的工具。
安装程序只下载所需的字节范围并即时打包。你无需先下载 15 GB 的源权重,然后再保留另外 15 GB 的转换文件。
实际性能
从磁盘流式读取不可避免地会产生 I/O 延迟。没有奇迹:生成速度直接取决于 SSD 吞吐量和快速缓存。
作者在不同 Apple Silicon 芯片代际上进行了一系列基准测试:
- 在配备 8 GB 内存的基础款 MacBook Air M2 上,速度达到每秒 5.1–6.3 个 token。这是实时阅读文本的舒适速度。
- 在配备 M5 Pro 和 24 GB 内存的 MacBook Pro 上,生成速度达到每秒 31–35 个 token。
对于预填充阶段(处理输入提示词),作者实现了 128 个 token 的分块处理。这有助于一次为一组行调用单个已加载的专家,显著减少首个 token 的生成时间。
如何构建和运行
构建需要一台运行当前版本 macOS 和支持 Swift 6.2 的 Xcode 的 Apple Silicon Mac。
克隆代码库并以发布模式构建项目:
构建完成后,启动原生应用程序:
首次启动时,点击下载按钮。应用程序将下载模型(需要约 15 GB 的可用磁盘空间)并准备 scratch/gemma4.gturbo 目录。下载完成后,点击加载模型并在输入框中输入你的查询。
如果你更喜欢使用控制台,可以用单独的命令下载模型:
然后将对话文件传递给 CLI:
要连接 OpenCode 或自定义 Python 脚本等本地客户端,只需启动服务器:
服务器在端口 8080 上监听,并通过流式传输和工具调用支持提供熟悉的 /v1/chat/completions 端点。
项目在实践中的用途
这不是一个适用于任何权重的通用引擎。TurboFieldfare 严格针对一个特定模型——Gemma 4 26B-A4B。但在其特定领域内,该项目涵盖几个具体场景:
- 低端笔记本电脑上的本地开发者助手。如果你有 8 GB 内存,以其他方式运行 260 亿参数模型而不冻结整个系统实际上是不可能的。
- 通过环回接口进行工具调用和文本解析的后台服务器,无需将机密数据发送到云端。
- 低级 Metal 优化的学习资源。代码库包含 103 个详细实验的日志,包括读取速度、缓存和 GPU 内核性能的基准测试。
如果你想在基础款 MacBook 上本地运行大型 MoE 模型,或者对编写自定义 ML Metal 着色器感兴趣,这个代码库绝对值得克隆和学习。
相关项目