AI Pulse
📡 X 信号

伯克利开源FreeToken 消费级GPU跑大模型

伯克利开源FreeToken 消费级GPU跑大模型

加州大学伯克利分校刚刚开源了 FreeToken。(本地 LLM 推理速度比 Ollama 快 2–4 倍)测试结果非常惊人:

- Qwen3.6-35B 在 8GB 显存的 GPU 上可达 39.3 tokens/秒
- DeepSeek-V4-Flash 284B 在 32GB 显存的 GPU 上可达 22 tokens/秒
- GLM-5.2 753B 在 96GB 显存的 GPU 上可达 14.9 tokens/秒

一个 35B 参数的模型,16 位精度仅权重就需要大约 70GB 显存。即便压缩到 4 位,也接近 18GB,而 FreeToken 能让它在 8GB 显存的 GPU 上运行。

我来解释一下原理:上文提到的三个模型都是混合专家模型(Mixture-of-Experts),而这正是 FreeToken 利用的特点。

每个层包含数百个独立专家,外加一个小型路由器,为每个 token 选择其中少数专家。Qwen3.6-35B 每个 token 只激活其 350 亿参数中的约 30 亿参数。DeepSeek-V4-Flash 每层从 256 个专家中选 6 个,因此 2840 亿参数中每次只有 130 亿参与运行。

所以计算量从来都不是瓶颈。单步推理会用到的权重,完全放得进消费级 GPU。但路由器可能选中的所有专家都必须存储在某个地方。这些专家存在系统内存中,GPU 只缓存最近用过的专家。

所以问题全出在路由器选中了一个不在 GPU 缓存里的专家的时候。处理缓存未命中有两种方式:
1. 通过 PCIe 复制到 GPU,在 GPU 运行
2. 直接在已经存储了该专家的 CPU 上运行

两种方式都读取同一块系统内存,因此它们会争抢同一个带宽池,而不是各自占用独立带宽。

现有推理引擎会二选一,在模型加载时就固定下来。但路由选择每个 token 都在变,固定选择会错过模型需求中的大部分机会。

FreeToken 会测量你机器上的两种带宽,然后按比例将每一步的未命中分配到两条路径上。GPU 和 CPU 的运算结果随后会精确合并,没有任何近似。

我没想到的是,两台同 GPU 的机器最终可能适用完全相反的策略。游戏主机里的 5090 应该几乎把所有任务都走 PCIe 传到 GPU,而 8GB 显存的笔记本更适合在 CPU 上计算大部分未命中。

这些信息都无法从规格表上读出来,所以引擎会给每台机器做一次性能评测。

设计的第二部分和代理有关。编码代理会不断重写自身历史,正常情况下每次编辑都会强制数千个 token 重新执行预填充。

FreeToken 会在代理框架的切割边界上保存检查点,因此只需要重新处理新增部分。它最慢的首 token 生成也不会超过 44 秒,而 llama.cpp 最高达到 232 秒,KTransformers 更是要 946 秒。

它提供了兼容 OpenAI 和 Anthropic 的 API,采用 Apache 2.0 许可证,因此 Claude Code 和 Codex 可以直接指向它。

公开发布权重只决定了谁能下载模型,不能决定谁能负担得起运行模型。前沿开源模型一直在推出,但运行它们仍然默认需要租用集群。

与此同时,全球有超过一亿台搭载独立 GPU 的消费级设备,大部分时间都在闲置。缩小这个差距从来都不是硬件问题,而这类工作才能把开源权重变成你真正能用的东西。

论文:
代码仓库:htt

本文由 AI 翻译自英文原帖,技术名词保留英文。

查看 X 原帖

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新