文章摘要
TurboFieldfare是一个专为Apple Silicon Mac设计的Swift+Metal运行时,能让26B参数的Gemma 4模型在仅约2GB内存中运行。它通过将核心和KV缓存保留在内存中,从SSD流式加载每个token所需的专家,从而在8GB内存Mac上实现推理。
文章总结
好的,这是根据您的要求,对原文进行中文重述后的版本:
TurboFieldfare:在约2GB内存中运行Gemma 4 26B-A4B模型
TurboFieldfare是一个专为Apple Silicon Mac(包括8GB内存版本)设计的自定义Swift + Metal运行时。它能让一个260亿参数的模型在仅约2GB的内存预算下运行。
核心原理
该工具无需将整个14.3GB的模型加载到内存中。它仅在内存中保留共享的1.35GB核心和FP16 KV缓存,然后根据每个token的需要,从SSD流式加载所需的专家模块。这使得模型可以在8GB内存的Mac上运行。
技术实现
运行时、流式安装器、命令行界面和原生Mac应用均使用Swift和Metal编写。TurboFieldfare是模型特定的,而非MLX或llama.cpp的封装。其实验记录汇总了103项关于内核、缓存、I/O、预填充和解码的测量结果。
快速上手
- 克隆仓库并构建:
git clone https://github.com/drumih/turbo-fieldfare.git,然后执行swift build -c release。 - 首次运行会下载并构建分词器所需的Swift包。
- 打开应用后,选择“下载”以获取并重新打包模型(约15GB)。
- 下载完成后,选择“加载模型”,输入提示词,点击“生成”。
性能概览
- 模型:Gemma 4 26B-A4B IT,总计260亿参数,每个token约激活38.8亿参数。
- 权重:MLX仿射4-bit,分组大小64;8-bit路由器;4-bit共享和路由专家。
- 内存:约2GB用于权重和4K KV缓存。
- 存储:安装后的纯文本模型约14.3GB。
- 硬件:Apple Silicon Mac,8GB内存。
- 平台:macOS 26, Metal 4, Swift 6.2。
- 实测解码速度:8GB M2 MacBook Air为5.1-6.3 tok/s;24GB M5 Pro为31-35 tok/s。
使用方式
TurboFieldfare提供原生Mac应用、命令行界面和实验性的OpenAI兼容服务器。它们共享同一个.gturbo模型目录,但同一时间只能运行一个模型实例。
- Mac应用:自动处理Gemma的聊天格式,支持用户和模型消息及可选的系统指导。生成参数(温度、Top-K、Top-P)可配置。
- 命令行界面:支持指令聊天(通过JSON文件)和原始补全(通过
--prompt参数)。提供丰富的生成选项。 - 本地服务器:监听
http://127.0.0.1:8080/v1,支持聊天补全、流式传输、函数工具和单前缀提示复用。
系统要求
- Apple Silicon Mac(已验证目标为8GB M2 MacBook Air)
- macOS 26及Metal 4
- Xcode 26和Swift 6.2或更新版本
- 约14.3GB的可用存储空间
- 首次安装需要网络连接
推理引擎工作原理
在每个Transformer层,Metal利用常驻权重计算注意力和路由器。CPU根据路由器的前8个专家ID,对照该层的16槽LFU缓存进行规划,然后通过并行的pread调用从SSD填充缓存未命中的数据。Metal在读取操作进行的同时计算常驻的共享专家分支,最后将共享和路由输出合并。
项目状态与范围
当前支持:远程流式重打包、指令微调后的Gemma 4 26B-A4B模型、4-bit量化权重、自定义Metal内核、SSD支持的路由专家流式传输、分块预填充和逐token生成、FP16 KV存储、以及Swift库、安装器、CLI、服务器和原生Mac应用。
未来工作
- 开发iPhone和iPad应用。
- 在更多Apple Silicon Mac上进行基准测试。
许可与声明
TurboFieldfare的源代码和文档采用Apache License 2.0许可。模型权重不包含在内,需单独下载,并受其原始条款约束。该项目是一个独立的研究项目,与Google无关。
后记
项目作者是Andrey Mikhaylov,一位专注于图像、视频和设备端AI的iOS和Metal工程师。他将此项目献给妻子Sasha。项目名称“TurboFieldfare”取自一种名为“Fieldfare”的鸫科鸟类,作者认为该项目正如这种鸟一样,虽不显眼,但独具特色。
评论总结
根据评论内容,总结如下:
主要观点与论据:
性能表现与硬件差异:评论者关注不同设备上的推理速度。例如,M2 MacBook Air(8GB)为5-6 tok/s,M5 MacBook Pro为31-35 tok/s,M4 Mac mini(16GB)约5 tok/s,M3(36GB)约20 tok/s。有评论质疑性能差距来源,认为SSD性能不应主导(addaon: "Where does this big a performance spread come from?")。
技术实现与优化:专家缓存(expert caching)是亮点,但评论者关心专家切换频率及对SSD的影响。mxmlnkn询问专家切换统计和最长无切换运行;tredre3比较与mmap的差异,认为项目同步SSD读取与推理活动以减少延迟。
硬件兼容性与风险:用户关注对SSD的潜在损害(touwer: "Is there any info on this doing harm to the SSD?"),以及长时间运行时的散热和SSD耐久性(hsienchuc: "will a fanless MacBook Air overheat and throttle?")。Windows和小显存用户希望支持(h2aichat: "Hope you can do it for Windows users also")。
应用与协作:有项目寻求合作(mmastrac: "I have a project that's almost ready to run DiffusionGemma"),用户讨论本地模型选择(maxignol: "Anyone got recommendation about what local model to use for what purpose?")。
平衡性总结: - 正面:多数评论赞赏项目实现,如"Nice job implementing expert caching!"(WithinReason)和"Great work, congratulations on the release!"(hsienchuc)。 - 质疑:性能差异原因、SSD风险、与现有方案(如mmap)的比较。 - 建议:扩展Windows支持、优化小显存设备、提供专家切换统计。