摘要: 当 OpenAI、Anthropic 等公司用 API 定价把人挡在大模型之外,一家来自 Berkeley、UT Austin、Stanford 的研究团队却正在做一件"叛逆"的事——让普通人的游戏本、工作站也能运行数据中心级的千亿参数大模型。他们开源了一个名为 FreeToken 的推理引擎,不仅支持 DeepSeek-V4-Flash(284B)、GLM-5.2(753B),还在 RTX 4060 笔记本上跑出了超过 Codex 中位数的生成速度。本文带你完整了解 FreeToken 的技术突破、部署方法和真实体验。
---

一、为什么我们需要本地大模型?

1.1 云端 API 的"隐形账单"

假设你正在开发一个编程辅助工具。根据 FreeToken 论文中引用的真实数据:

  • Claude Code 的企业级部署:每个开发者每天约 13 美元,每月 150–250 美元
  • 开源模型的价格:虽然比闭源 API 便宜,但持续使用依然是笔不小的开销
更麻烦的是,当你的应用用户量扩大时,API 账单会像坐火箭一样上涨。如果你只是想在家测试一个 AI Agent,或者给家人朋友做个私人助理,这些成本根本吃不消。

1.2 个人 GPU 的"沉睡算力"

Steam 硬件调查数据显示:

  • Steam 有超过 2 亿月活用户
  • 其中约 72% 的用户装有独立 NVIDIA GPU
  • 仅 RTX 4060 Laptop 就是最热门的显卡之一(3.81% 占有率)
这些 GPU 平时可能只用来打游戏,却在"沉睡"。FreeToken 的初衷很简单:既然大家都有 GPU,为什么不把它们变成 AI 推理平台?

1.3 开源模型的"下载容易运行难"

现在的开源模型确实越来越强了:

  • Kimi-K3(2026):接近最强专有模型
  • GLM-5.2(2026):753B 参数,40B 活跃
  • DeepSeek-V4-Flash(2026):284B 参数,13B 活跃
但下载了参数 ≠ 能跑得动。很多模型需要数百 GB 显存,普通人连买卡的钱都不一定够。MoE(混合专家)架构打开了新窗口:每个 token 只激活少量专家,计算量可控,但完整专家池可能远超单卡显存

这就引出了 FreeToken 要解决的核心问题:

如何让个人硬件高效服务超大 MoE 模型?
---

二、FreeToken 的三大黑科技

2.1 带宽自适应执行:把"瓶颈"变成信号

问题 1:Prefill 阶段的专家传输风暴

在长文本生成时,MoE 模型的每一层几乎都会激活所有专家。假设一个 284B 模型:

  • 每个 token 只激活 13B
  • 但一次 Prefill 可能需要传输 140GB 专家权重
  • 在 RTX 5090 上(PCIe 5.0 x16, ~60GB/s)就要2 秒
  • 在普通笔记本上(PCIe x4, ~15GB/s)可能要10 秒+

问题 2:Decode 阶段的缓存缺失

每个 token 虽然只激活少数专家,但路由器会根据内容动态变化。现有的系统要么静态分配(命中率低),要么只靠预测(无法消除所有缺失)。

FreeToken 的解法:q* 策略

FreeToken 引入带宽感知的调度策略:

# 1. 先测试你机器的带宽
ft bench bw

这会输出类似结果:

PCIe 专家传输带宽 Bp = 52.7 GB/s

CPU 主机带宽 Bh = 77.3 GB/s

然后根据实测带宽计算最优分配比例:

q* = m × Bₚ / Bₕ

其中:

  • m = 缺失的专家数量
  • Bₚ = PCIe 传输带宽
  • Bₕ = CPU 主机带宽
这意味着每个 token 的解码都会动态决定:有多少专家通过 PCIe 传输到 GPU,有多少直接在 CPU 上执行。两者并行,互不等待。

💡 关键点:这不像传统方法那样"要么全 GPU 要么全 CPU",而是根据你机器的真实性能自动平衡。

2.2 语义感知缓存:记住 Agent 的"思考痕迹"

问题:Agent 工作的上下文编辑成本

当你让 AI 写代码时,它可能会:

  1. 1. 先"思考"几段
  2. 2. 调用工具查文档
  3. 3. 输出结果
如果每次编辑都要重新计算整个上下文,成本会爆炸。

FreeToken 的解法:语义锚点

FreeToken 会在语义边界保存状态检查点:

  • Thinking 段落的特殊token
  • Tool call 的开始/结束标记
  • 对话轮次的分隔符
当 Agent 编辑历史时(比如删除之前的思考),FreeToken 只需要从最近的检查点重新计算新后缀,而不是重头再来。

# 效果体现在终端里

传统系统:每次工具调用后 TTFT 从 5s → 150s+

FreeToken:始终控制在 44s 以内

2.3 弹性内存管理:适配个人设备的"摇摆预算"

问题:GPU 内存是动态的

在数据中心,GPU 可以专用于推理。但在笔记本电脑上:

  • 浏览器会占用几 GB 显存
  • 游戏启动时显存骤减
  • 不同时刻可用的 VRAM 完全不同

FreeToken 的解法:运行时重配置

FreeToken 允许你在不重启引擎的情况下动态调整显存分配:

# 查看所有运行中的请求
ftctl requests --limit 20

动态调整 KV 缓存大小(单位:token)

ftctl cache --kv 32768

动态调整专家缓存大小(单位:slots,千用 k 表示)

ftctl cache --moe 2000k

查看当前缓存状态

ftctl cache --moe

这就像给推理引擎配了一个"可变形的内存池",让它适应你的桌面使用场景。

---

三、真实性能表现

3.1 硬件清单

FreeToken 团队在六种不同硬件上进行了测试:

系统GPU (VRAM)PCIe主机带宽
游戏本RTX 4060 Laptop (8GB)4.0 × 847.5 GB/s
游戏桌面RTX 5090 (32GB)5.0 × 1653.8 GB/s
工作站RTX PRO 6000 (96GB)5.0 × 16178 GB/s

3.2 性能数据对比

场景 1:RTX 5090 游戏桌面

模型FreeToken 吞吐量最接近基线提升
Qwen3.6-35B77–83 tok/sKTransformers1.8–2.3×
DeepSeek-V4-Flash22–25 tok/sllama.cpp1.5–1.9×

最惊人的是尾延迟:FreeToken 的最坏情况 TTFT 始终低于 44s,而基线系统在某个场景下会超过 946s。

场景 2:RTX 4060 Laptop(最贴近普通用户)

在 8GB 显存的笔记本上,FreeToken 运行 Qwen3.6-35B 达到 39.3 tok/s,超过了 Codex 在真实工作流中的中位数(33 tok/s)。

场景 3:RTX PRO 6000 工作站(展示极限能力)

单卡运行 GLM-5.2 (753B),生成速度 14.9 tok/s,是 llama.cpp 的 2 倍。

🎯 关键结论:FreeToken 让普通消费级 GPU能够运行原本需要数据中心级集群才能服务的大模型。
---

四、5 分钟部署指南

4.1 环境准备

FreeToken 目前要求:

  • 操作系统:Linux x86_64
  • GPU:NVIDIA 显卡,驱动 r580+,CUDA 13
  • Python:≥ 3.10
  • 推荐工具uv(比 pip 更快)

4.2 安装 FreeToken

# 创建虚拟环境并激活
uv venv && source .venv/bin/activate

安装包(带 CUDA 加速)

uv pip install "freetoken[accel]"

4.3 准备模型

官方支持的模型列表:

模型HF 仓库
DeepSeek-V4-Flashdeepseek-ai/DeepSeek-V4-Flash-0731
GLM-5.2nvidia/GLM-5.2-NVFP4
Qwen3.6-35B-A3BQwen/Qwen3.6-35B-A3B

你可以选择下载到本地,或者直接引用 HuggingFace 仓库 ID。

4.4 启动服务器

# 方法 1:从本地目录启动
ft serve --model ~/models/Qwen3.6-35B-A3B

方法 2:直接从 HuggingFace 启动

ft serve --model Qwen/Qwen3.6-35B-A3B

启动成功后会看到:

API server is ready to serve on 127.0.0.1:1919

4.5 测试服务器

# 查看模型列表
curl http://127.0.0.1:1919/v1/models

发送聊天请求

curl http://127.0.0.1:1919/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{ "model": "Qwen3.6-35B-A3B", "messages": [{"role": "user", "content": "用中文解释一下 MoE 模型是什么?"}], "max_tokens": 256, "stream": true }'

4.6 直接用终端聊天

# 一站式启动服务器并聊天
ft shell --model ~/models/Qwen3.6-35B-A3B

在 shell 中可用命令:

  • /think - 启用链式思考
  • /cache - 查看缓存状态
  • /reset - 重置会话
  • /help - 查看完整命令列表

4.7 作为 API 服务使用

FreeToken 兼容 OpenAI 和 Anthropic API,你可以直接用现有客户端:

from openai import OpenAI

client = OpenAI( base_url="http://127.0.0.1:1919/v1", api_key="not-needed" # 本地部署不需要实际 API 密钥 )

response = client.chat.completions.create( model="Qwen3.6-35B-A3B", messages=[{"role": "user", "content": "给我写个 Python 脚本来遍历文件夹"}], stream=True )

for chunk in response: print(chunk.choices[0].delta.content, end="", flush=True)

4.8 启动 Coding Agent

# 启动 Claude Code
ft launch claude

启动 DeepSeek Harness

ft launch dsh

预演配置(不实际安装)

ft launch claude --dry-run

---

五、实践心得:为什么这套系统真正"本地化"?

5.1 从"技术展示"到"实用工具"

我研究 FreeToken 时,最欣赏的一点是它解决了真实世界的痛点,而不是纸上谈兵的技术实验:

  1. 1. 适应个人设备的多样性
- 数据中心可以假设"所有机器都是 H100" - FreeToken 却能在 8GB 笔记本和 96GB 工作站上工作 - 关键是运行时自我感知ft bench bw 会根据你机器的实际带宽调整策略
  1. 2. 适应 Agent 工作流的动态性
- 传统系统假设"单次查询" - FreeToken 专为多轮对话 + 工具调用设计 - 语义锚点机制让编辑历史几乎不额外成本
  1. 3. 适应个人用户的操作习惯
- 不需要专门服务器 - 启动即服务,关闭即释放 - ft shell 提供最接近"对话"的体验

5.2 技术深度藏在"默认值"里

FreeToken 的 CLI 非常友好:

ft serve --model ~/models/Qwen3.6-35B-A3B

就这么一行命令:

  • 自动检测你的 GPU
  • 自动选择最优的 MoE 后端(fused / offload / hybrid
  • 自动配置 KV 缓存大小
  • 自动启用推理模式
但如果你需要极致优化,它也有丰富的选项:

ft serve --model ~/models/glm5.2 \
  --memory-ratio 0.85 \          # 内存使用比例
  --moe-cache-rate 0.6 \         # 专家缓存比例
  --max-seq-len-override 65536 \ # 最大序列长度
  --moe-backend hybrid \         # 混合模式(需先跑 ft bench bw)
  --moe-cpu-threads 16 \         # CPU 线程数
  --decodelog-interval 20        # 每 20 步输出一次性能

5.3 一个"反常识"的设计哲学

论文提到一个关键点:FreeToken 不试图预测所有的缓存缺失,而是学会如何处理它们

传统方法:

  1. 1. 预测哪些专家会被需要
  2. 2. 提前加载
  3. 3. 预测错了就浪费
FreeToken 的方法:
  1. 1. 承认预测不可能 100% 准确
  2. 2. 对缺失的专家,实时决定:传输还是 CPU 执行
  3. 3. 根据当前机器的空闲带宽动态调整
这个思路很像数据库的"自适应查询优化",但用在 MoE 推理上是首创。

5.4 从"下载模型"到"部署服务"的转变

FreeToken 最终想做的,是把"开源模型"从技术爱好者的玩具变成普通人可用的服务

  • 以前:下载 140GB 模型 → 配置复杂 → 运行慢 → 放弃
  • 现在:ft serve --model ... → 5 分钟后 → 开始使用 → 持续迭代
特别是 FTW 格式(FreeToken Weight),它不是"转格式"那么简单,而是预合并成运行时银行布局,加载时可以直接写入最终位置,跳过了传统引擎的"发现 + 重组"步骤。

---

六、边界与展望

6.1 当前限制

  • 操作系统:目前仅支持 Linux x86_64
  • GPU:需要 NVIDIA,且驱动需要较新(r580+)
  • CUDA:需要 CUDA 13 工具包
  • 模型格式:优先支持 safetensors,GGUF 仅对部分模型支持

6.2 未来方向

从论文和代码来看,FreeToken 正在做的事情有更大愿景:

  1. 1. 边缘计算基础设施
- 让普通人的 GPU 变成分布式推理网络 - 可能衍生出"算力共享"生态
  1. 2. Agent 原生推理
- 当前的优化围绕 Agent 工作流 - 未来可能更深耦合到 Agent 框架(OpenClaw, OpenCode 等)
  1. 3. 多机协同
- 如果单机显存不够,是否可以通过网络聚合多台机器? - 论文中已提到"弹性内存管理",但尚未展开

6.3 开源精神的新诠释

FreeToken 在论文结尾说:

"Together, these advances turn open weights into open access"
这就是关键差异:
  • Open Weights = 你可以下载参数
  • Open Access = 你可以真正使用它们
FreeToken 正在把前者变成后者。

---

七、结语

如果你一直在想找一套方案:

  • ✅ 既能本地运行大模型
  • ✅ 又不想被复杂的配置吓退
  • ✅ 还能在个人 GPU 上跑出有竞争力的速度
那么 FreeToken 值得你花一杯咖啡的时间试试

毕竟,AI 的价值不应该被"云端账单"锁住。当你的 RTX 4060 可以在晚上打游戏后,第二天早上帮你写代码、分析文档、调试 Bug 时,那种自主性成本优势,是 API 永远给不了的。

---

📚 参考资料

---

本文基于 FreeToken v2026.08 版本撰写。FreeToken 是持续迭代的项目,具体特性以官方文档为准。

---