摘要: 当 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 便宜,但持续使用依然是笔不小的开销
1.2 个人 GPU 的"沉睡算力"
Steam 硬件调查数据显示:
- Steam 有超过 2 亿月活用户
- 其中约 72% 的用户装有独立 NVIDIA GPU
- 仅 RTX 4060 Laptop 就是最热门的显卡之一(3.81% 占有率)
1.3 开源模型的"下载容易运行难"
现在的开源模型确实越来越强了:
- Kimi-K3(2026):接近最强专有模型
- GLM-5.2(2026):753B 参数,40B 活跃
- DeepSeek-V4-Flash(2026):284B 参数,13B 活跃
这就引出了 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 主机带宽
💡 关键点:这不像传统方法那样"要么全 GPU 要么全 CPU",而是根据你机器的真实性能自动平衡。
2.2 语义感知缓存:记住 Agent 的"思考痕迹"
问题:Agent 工作的上下文编辑成本
当你让 AI 写代码时,它可能会:
- 1. 先"思考"几段
- 2. 调用工具查文档
- 3. 输出结果
FreeToken 的解法:语义锚点
FreeToken 会在语义边界保存状态检查点:
- Thinking 段落的特殊token
- Tool call 的开始/结束标记
- 对话轮次的分隔符
# 效果体现在终端里
传统系统:每次工具调用后 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 × 8 | 47.5 GB/s |
| 游戏桌面 | RTX 5090 (32GB) | 5.0 × 16 | 53.8 GB/s |
| 工作站 | RTX PRO 6000 (96GB) | 5.0 × 16 | 178 GB/s |
3.2 性能数据对比
场景 1:RTX 5090 游戏桌面
| 模型 | FreeToken 吞吐量 | 最接近基线 | 提升 |
|---|---|---|---|
| Qwen3.6-35B | 77–83 tok/s | KTransformers | 1.8–2.3× |
| DeepSeek-V4-Flash | 22–25 tok/s | llama.cpp | 1.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-Flash | deepseek-ai/DeepSeek-V4-Flash-0731 |
| GLM-5.2 | nvidia/GLM-5.2-NVFP4 |
| Qwen3.6-35B-A3B | Qwen/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. 适应个人设备的多样性
ft bench bw 会根据你机器的实际带宽调整策略
- 2. 适应 Agent 工作流的动态性
- 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. 预测哪些专家会被需要
- 2. 提前加载
- 3. 预测错了就浪费
- 1. 承认预测不可能 100% 准确
- 2. 对缺失的专家,实时决定:传输还是 CPU 执行
- 3. 根据当前机器的空闲带宽动态调整
5.4 从"下载模型"到"部署服务"的转变
FreeToken 最终想做的,是把"开源模型"从技术爱好者的玩具变成普通人可用的服务:
- 以前:下载 140GB 模型 → 配置复杂 → 运行慢 → 放弃
- 现在:
ft serve --model ...→ 5 分钟后 → 开始使用 → 持续迭代
---
六、边界与展望
6.1 当前限制
- 操作系统:目前仅支持 Linux x86_64
- GPU:需要 NVIDIA,且驱动需要较新(r580+)
- CUDA:需要 CUDA 13 工具包
- 模型格式:优先支持 safetensors,GGUF 仅对部分模型支持
6.2 未来方向
从论文和代码来看,FreeToken 正在做的事情有更大愿景:
- 1. 边缘计算基础设施
- 2. Agent 原生推理
- 3. 多机协同
6.3 开源精神的新诠释
FreeToken 在论文结尾说:
"Together, these advances turn open weights into open access"这就是关键差异:
- Open Weights = 你可以下载参数
- Open Access = 你可以真正使用它们
---
七、结语
如果你一直在想找一套方案:
- ✅ 既能本地运行大模型
- ✅ 又不想被复杂的配置吓退
- ✅ 还能在个人 GPU 上跑出有竞争力的速度
毕竟,AI 的价值不应该被"云端账单"锁住。当你的 RTX 4060 可以在晚上打游戏后,第二天早上帮你写代码、分析文档、调试 Bug 时,那种自主性和成本优势,是 API 永远给不了的。
---
📚 参考资料
- 论文: FreeToken: Efficient Edge-Native MoE Serving with Bandwidth-Adaptive Execution
- 代码: https://github.com/FlashML-org/FreeToken
- 快速开始: docs/quickstart.md
- CLI 参考: docs/cli.md
- 支持的模型: docs/models.md
- 桌面应用: https://www.flashml.ai/
本文基于 FreeToken v2026.08 版本撰写。FreeToken 是持续迭代的项目,具体特性以官方文档为准。
---

点评与讨论
GITHUB 账号登录有疑问、有补充、有不同看法?欢迎留下你的点评,一起把技术聊透。👇