跳到正文
北京时间
原文
Hacker News 热门(buzzing.cc 中文翻译)· gitpusher42·· 2026-07-30精选AI 评分74

开源引擎可在任何 M 系列 Mac 上以 2 GB 内存运行 Gemma 4 26B

Show HN: 可在任何 M 系列 Mac 上,利用 2 GB 内存运行搭载 Gemma 4 26B 的开源引擎

AI 导读

一个开源引擎让 Gemma 4 26B 模型能在任何 M 系列 Mac 上运行,仅需 2 GB 内存。该项目已发布在 GitHub 上,大幅降低了本地运行大语言模型的硬件门槛。

推荐理由

这是我见过最极端的端侧优化,把 26B 参数塞进 2GB 内存,意味着所有 M 系 Mac 都能本地跑大模型了,开发者值得马上 clone 试试。

正文 · AI 翻译

TurboFieldfare logo: a fieldfare inside a segmented cache ring

TurboFieldfare

Gemma 4 26B-A4B 在约 2 GB 内存中推理
一个面向任何 Apple Silicon Mac 的自定义 Swift + Metal 运行时,连 8 GB 的机型也能跑。

Swift 6.2 Metal 4 macOS 26 or later Apache 2.0 license

快速开始 · 本地服务器 · 基准测试 · 贡献结果 · 工作原理 · 实验 · 参考文献

TurboFieldfare Mac app generating text with Gemma 4 26B-A4B

内存变得昂贵了。所以我给一个 260 亿参数的模型设了约 2 GB 的预算。

TurboFieldfare 运行经过指令微调的 Gemma 4 26B-A4B,无需将整个 14.3 GB 的模型加载到内存中。它把共享的 1.35 GB 核心和 FP16 KV cache 常驻内存,然后仅从 SSD 流式加载每个 token 所需的专家。这正是该模型能在 8 GB 内存的 Mac 上运行的原因。

该运行时、流式安装器、CLI 和原生 Mac 应用均用 Swift 和 Metal 编写。TurboFieldfare 是针对特定模型定制的,而非对 MLX 或 llama.cpp 的封装。精心整理的 实验记录汇总了涵盖 kernel、缓存、I/O、prefill 和 decode 的 103 项实测结果。

试一试

git clone https://github.com/drumih/turbo-fieldfare.git
cd turbo-fieldfare
swift build -c release
.build/release/TurboFieldfareMac

首次运行时,Swift Package Manager 会下载并构建 tokenizer 所需的 Swift 包。完整的 release 构建包含前台 Mac 应用及其配套的 decode-service 可执行文件。

应用打开后,选择 Download,让 TurboFieldfare 获取并重新打包固定版本的模型(约 15 GB)。准备就绪后,选择 Load Model,输入你的提示词,然后按 Generate。

概览

指标 数值
模型 Gemma 4 26B-A4B IT,总参数量 26B,每个 token 约 3.88B 激活参数
权重 MLX affine 4-bit,group 64;8-bit router;4-bit 共享专家与路由专家
内存 约 2 GB 权重及 4K KV cache
存储 已安装的纯文本模型约 14.3 GB
硬件 Apple Silicon Mac;8 GB 内存
平台 macOS 26、Metal 4、Swift 6.2
M2 实测解码 5.1-6.3 tok/s,在 8 GB 的 M2 MacBook Air 上
M5 实测解码 31-35 tok/s,在 24 GB 的 M5 Pro 上
社区报告 这里

实测结果只是一个参考点,而非性能上限。提示词长度、生成长度、页缓存状态以及硬件都会影响吞吐量。可查看其他 Mac 的社区基准测试结果,或按照社区基准测试指南添加你自己的结果。

使用 TurboFieldfare

TurboFieldfare 提供原生 Mac 应用、命令行界面,以及一个实验性的回环 OpenAI 兼容服务器。它们使用相同的 .gturbo 模型目录,但同一时间只应运行一个拥有该模型的产品。

该 Swift 包提供六个产品:

产品 用途
TurboFieldfare 包含运行时和 Metal 内核的 Swift 库
TurboFieldfareMac 用于安装和生成的原生 Mac 应用
TurboFieldfareDecodeService 由 Mac 应用使用的一次性本地模型和 Metal 所有者
TurboFieldfareCLI 命令行指令对话和原始补全
TurboFieldfareServer 回环 OpenAI 兼容的 Chat Completions 服务器
TurboFieldfareRepack 流式模型安装器和安装验证器

要求

  • 一台 Apple Silicon Mac;已验证的目标设备是 8 GB M2 MacBook Air
  • macOS 26 搭配 Metal 4
  • Xcode 26 及 Swift 6.2 或更新版本
  • 足够的可用存储空间,用于安装约 14.3 GB 的模型
  • 首次安装模型时需要互联网连接

该软件包仅支持 arm64。不支持较旧版本的 macOS 和 Metal。

向模型输入提示词

Mac 应用会将你输入的内容视为指令,并自动处理 Gemma 的对话格式。只需描述任务,并附上模型所需的任何上下文即可。

生成默认使用 temperature 0.2、Top-K 64 和 Top-P 0.95。将 temperature 设为 0 可获得确定性的贪心输出。模型仍可能重复自身或给出错误答案,因此请核查重要结果。

TurboFieldfare 仅支持文本。该应用和 CLI 支持用户消息和模型消息,以及可选的系统引导;它们不会公开或执行工具。回环服务器接受函数工具声明,并返回模型生成的工具调用,供客户端授权并执行。不支持图像、音频和视频。

Mac 应用

克隆该仓库,然后从其根目录运行该应用:

swift build -c release
.build/release/TurboFieldfareMac

构建完整软件包,使应用及其配套的解码服务都可用。从此检出目录启动时,应用会将模型存储在 scratch/gemma4.gturbo 中。

安装模型

首次启动时,应用会检查可用存储空间,并显示下载大小和安装后大小。选择 下载 即可开始。

安装程序从不会将完整的源检查点实体化到磁盘。它从固定的 Hugging Face 修订版本流式读取所需的字节范围,并在数据到达时直接将其重新打包为 .gturbo 布局。这避免了在磁盘上再存一份完整的检查点,并使临时内存占用保持有界。

首次安装会通过有界的 Hugging Face 范围请求传输约 15 GB 数据。网络速度和 Hugging Face 的响应时间各不相同,因此可能需要一段时间。完成后的 .gturbo 安装占用约 14.3 GB,且只有在清单和文件哈希都通过校验后才会被接受。安装过程不会将模型加载到内存中。

加载并生成

安装完成后:

  1. 选择 加载模型。
  2. 在输入框中输入提示词。
  3. 选择 Generate,或按 Command+Return。使用 Settings > Send Message With 来选择 Return 或 Command-Return。
  4. 使用停止按钮或 Escape 提前结束生成。

状态栏显示生成进度、解码速度和内存使用情况。使用右侧面板配置采样、上下文长度、专家缓存槽位和运行时选项。详情和默认值请参见 Runtime controls。

命令行界面

CLI 使用现有的 .gturbo 安装。如果你是通过 Mac 应用安装的模型,它已经在 scratch/gemma4.gturbo 可用。否则,请从命令行安装:

swift run -c release TurboFieldfareRepack \
  --output scratch/gemma4.gturbo \
  --overwrite

继续已取消或中断的下载:

swift run -c release TurboFieldfareRepack \
  --output scratch/gemma4.gturbo \
  --overwrite \
  --resume

移除已保存的下载状态:

swift run -c release TurboFieldfareRepack \
  --discard-partial \
  --output scratch/gemma4.gturbo

运行时只接受一个已完成的 .gturbo 目录,且其中包含最终的 manifest.json。

在不加载模型的情况下验证现有安装:

swift run -c release TurboFieldfareRepack \
  --verify-install \
  --input-gturbo scratch/gemma4.gturbo

指令对话

将聊天消息放入一个 JSON 数组,并通过 --messages-file 传入:

[
  {"role": "user", "content": "Explain why chunked prefill reduces time to first token while keeping memory bounded."}
]
swift run -c release TurboFieldfareCLI \
  --model scratch/gemma4.gturbo \
  --messages-file messages.json

它格式化消息的方式与 Mac 应用相同。CLI 的响应上限通过 --max-new 设置,默认值为 1,024 tokens。Mac 应用可以一直生成,直到选定的上下文窗口被填满。

常见的生成选项包括 --max-context、--temperature、--top-k、--top-p、--repetition-penalty、--seed,以及可重复的 --stop 字符串。公开 CLI 使用生产运行时默认值。运行以下命令可查看完整的选项列表:

swift run -c release TurboFieldfareCLI --help

生成的文本输出到标准输出。计时统计输出到标准错误;在脚本中添加 --quiet 可抑制该页脚。

本地 OpenAI 兼容服务器

构建服务器并将其指向已安装的模型:

swift build -c release --product TurboFieldfareServer
.build/release/TurboFieldfareServer \
  --model scratch/gemma4.gturbo

它监听 http://127.0.0.1:8080/v1,并支持 Chat Completions、流式传输、函数工具以及单前缀提示词复用。客户端必须授权并运行每一次工具调用。请将服务器保持在回环地址上;它没有远程身份验证或 TLS。

有关测试请求、Python 和 OpenCode 设置、提示词复用、工具处理以及受支持的 API 子集,请参阅 本地服务器。

测试与贡献

串行运行公开测试套件:

Scripts/test.sh

在开始模型运行之前,关闭占用内存较大的应用,并检查 memory_pressure -Q。如果它报告可用内存很少,就推迟运行。一次只运行一个 TurboFieldfare 应用、解码服务、CLI、服务器、测试或其他本地模型进程。

要贡献可比的性能结果,请遵循 社区基准测试指南。

推理引擎如何工作

在每个 transformer 层,Metal 根据常驻权重计算注意力和路由器。CPU 使用路由器的 top-8 专家 ID,针对该层的 16 槽 LFU 缓存进行规划,然后通过有界的并行 pread 调用将缺失项填充到 Metal 可见缓冲区中。在这些读取进行的同时,Metal 计算常驻共享专家分支,然后合并共享输出和路由输出。

提示词预填充使用最多 128 个 token 的分块,以便一个已获取的专家可以服务多行。生成阶段一次一个 token 地重复路由层循环。安装程序应用同样的有界内存规则:它直接将远程范围重新打包进 .gturbo,而不暂存完整分片或张量。

关于 TurboFieldfare 的视频概览,请参见 Better Stack 的 Local AI On Apple Silicon uses 7X Less RAM。

关于模型架构的可视化介绍,请参见 Maarten Grootendorst 的 A Visual Guide to Gemma 4。

系统设计解释了.gturbo布局、内存所有权、prefill、router 交接、cb1/io/cb2阶段、Metal kernel 以及正确性不变量。

状态与范围

TurboFieldfare 目前包含:

  • 将远程流式数据重新打包为.gturbo模型格式
  • 经过指令微调的 Gemma 4 26B-A4B,已验证纯文本聊天格式
  • 4-bit MLX 仿射嵌入向量、注意力、共享专家和路由专家权重,外加 8-bit router
  • 用于量化 GEMV、注意力、MoE、归一化、RoPE、采样和生产级融合的自定义 Metal kernel
  • 基于 SSD 的路由专家流式加载,配有有界专家缓存
  • 分块单提示词 prefill 与逐 token 生成
  • FP16 KV 存储,25 个滑动窗口层使用有界循环存储,5 个全注意力层使用线性存储
  • 精确的 split-K/V 解码注意力,具有各自独立的归一化 K 和 V 路径
  • 一个 Swift 库、流式安装器、命令行界面、兼容 OpenAI 的环回服务器,以及一个原生 SwiftUI/AppKit Mac 应用,附带一次性本地解码服务

当前范围是在配备至少 8 GB 内存的 Apple Silicon Mac 上,从固定的 Gemma 4 26B-A4B 指令检查点进行纯文本推理。

未来工作

  • 构建 iPhone 和 iPad 应用,然后在移动硬件上测量推理速度和内存占用。
  • 对更多 Apple Silicon Mac 进行基准测试,尤其是基础款 16 GB M4 Mac mini 和其他 8 GB 机型。

实验与技术文档

塑造 TurboFieldfare 的实验解释了最大的收益、那些看似合理却失败的想法,以及在更强验证下被推翻的早期结果。详细的实验记录保留了全部 103 条经审计的条目作为可选证据。

有用的入口:

许可证与模型条款

TurboFieldfare 的源代码和文档依据 Apache License 2.0 授权。

模型权重不包含在内。安装程序会从固定的 Hugging Face checkpoint 单独下载它们,权重仍受其来源条款约束。模型及 Swift 包许可证审查请参见 THIRD_PARTY_NOTICES.md。

TurboFieldfare 是一个独立研究项目。它与 Google 无关联,未获其赞助,也未获其背书。

后记与项目名称

感谢查看这个项目!

我叫 Andrey Mikhaylov。你可以在 LinkedIn 上找到我。我是 TurboFieldfare 的作者,也是一名 iOS 和 Metal 工程师。我的大部分工作涉及图像、视频以及端侧 AI。

我把这个项目献给我的妻子 Sasha,她是我认识的最支持我的人。即使在我最艰难的时刻,她也始终站在我身边。她热爱野生动物,喜欢观鸟,还在我们当地的观鸟社区做志愿者。因为她,我也与鸟类和自然走得更近了。

TurboFieldfare 的名字来自田鸫(fieldfare),它是鸫科的一员,也是我最喜欢的鸟。它并不是最显眼或色彩最鲜艳的鸟,但它绝对有自己的性格和独特之处。我觉得这个项目也是如此:它可能不是最实用的,但我用自己最喜欢的工具、尤其是 Metal,在我最喜欢的领域——端侧 ML 推理——中构建了它。它绝对有自己的性格和独特之处。

下次你在户外时,摸摸草地,听听鸟鸣。有时候,这是你能做的最美好的事。如果可以的话,请支持你当地的野生动物社区。他们做着重要的工作。

谢谢!

来源:Hacker News 热门(buzzing.cc 中文翻译) · github.com