端侧MoE推理新神器FreeToken发布,论文2026年8月公开

本地跑大模型,显存不够一直是老大难问题。不过 FreeToken 想解决的可不只是这个问题。

它的核心思路是:把 GPU、CPU、内存和 PCIe 总线当成一个整体来调度。

一、FreeToken 到底是什么?

我觉得 FreeToken 这玩意儿挺有意思的。它是一套专门给端侧硬件用的 MoE(Mixture-of-Experts)推理系统,背后有 Shuo Yang、Song Han、Matei Zaharia、Ion Stoica 这些大佬参与开发,论文是 2026 年 8 月才公开的

说实话,它可不是简单的把计算往 CPU 上搬那么简单。人家从底层就把整套推理运行时给重构了——Expert 怎么加载、怎么缓存、CPU 和 GPU 怎么配合、Agent 上下文复用、显存动态管理……每个环节都重新设计过。你猜怎么着?这真的有用吗?效果确实不错。

官方的说法是,FreeToken 已经能跑 20 多种 MoE 模型了,从 8GB 显存的笔记本 GPU 一直到工作站级别的显卡都能适配。老实讲,这个兼容性确实挺吓人的。实验那边重点测了几个:Qwen3.6-35B-A3BDeepSeek-V4-FlashGLM-5.2。话说回来,这几个都是挺主流的模型,能跑通就说明 FreeToken 不是纸上谈兵,对吧。

二、MoE 模型的端侧痛点

我觉得MoE这东西吧,最大的卖点就是总参数能堆得特别大。不过呢,每个Token实际上只唤醒少数几个Expert。

你拿 DeepSeek-V4-Flash 打个比方哈,它虽然总共塞进去了 284B 参数,但每个 Token 每层其实就挑出 6 个 Expert 来干活,真正参与计算的也就 13B 左右。
这怎么破?剩下那些不参与当下计算的 Expert 权重,总不能悬空吧?你猜怎么着,这地方还真不好安置。

  • 显存?根本装不下那么多 Expert,对吧……
  • 塞到系统内存里倒是行,但你得通过 PCIe 一条一条搬过来,这过程挺磨人的。
  • 结果 PCIe 那点带宽,跟 GPU 显存比起来,简直是杯水车薪。
  • CPU 其实也能顶上算 Expert,不过嘛,算力跟内存带宽双双受限,跑起来挺吃力的,效率大打折扣。
  • 还有啊,Agent 但凡改一下上下文,之前算好的 Prefill 可能就得推倒重来,那开销想想都头大。

说实话,FreeToken 这套玩法的核心,说白了就一句话:别死磕 GPU Offload 或者 CPU Offload 某一招,直接看眼下这台机器的带宽和算力到底够不够,再来动态调度。这思路是不是顺多了?

三、核心技术:Prefill 全层双缓冲

说实话,长 Prompt 的 Prefill 绝对是端侧 MoE 最容易卡住的地方。

Decode 阶段其实还好,一个 Token 就调用几个 Expert 就够了。但你想想 Prefill 的时候——长 Prompt 一进来,大量 Token 的路由范围直接覆盖几乎整个 Expert 池,数据量巨大。论文里提到一个数字,DeepSeek-V4-Flash 的 FP4 部署在 RTX 5090 上,单次 Prefill 可能要搬 140GB 的 Expert 权重……这数字吓人不?

FreeToken 的做法挺巧妙的:全层双缓冲流水线

  1. GPU 正在算第 L 层;
  2. 后台传输线程同时通过 PCIe 把第 L+1 层的 Expert 数据搬过来;
  3. 当前层一跑完,两个 Buffer 直接交换;
  4. 下一层的 Expert 早就待命了。

说白了就是——把计算和传输时间叠在一起,PCIe 延迟能藏多少藏多少。

你们猜怎么着?论文实验的数据还挺好看的:RTX 5090 上跑 8192 Token 的 Prefill,Expert 流式传输速度能达到大约 52.7GB/s。如果取消双缓冲……4K、8K、16K 的吞吐分别掉了 19%、25% 和 26%。

差距还挺明显的对吧。

四、核心技术:q* 带宽自适应 CPU/GPU 调度

说实话,Decode阶段的问题还真不太一样。

我觉得吧,一个Token其实只激活少数几个Expert。要是这些Expert刚好已经在GPU Cache里,那太好了,直接算就行……可一旦没命中,就会产生Cache Miss。

老实讲,老办法基本就两条路:要么从内存把Expert搬到GPU,要么干脆让CPU算。

而FreeToken的思路有点不一样——它会根据机器当前的实际PCIe带宽和CPU计算能力,对Cache Miss做个动态拆分。

你看个例子,假设现在碰上10个Expert Miss:

  • 一部分走PCIe搬去GPU;
  • 另一部分直接在CPU上算,不搬了;
  • 两边的活儿还能并行干;
  • 最后把结果汇到一块儿。

这招叫 q Bandwidth-Adaptive Execution

FreeToken会用ft bench bw实测一下当前机器的CPU/内存和PCIe性能,再按比例分流,而不是套用一个死板的固定参数。

说白了,它把PCIe带宽当成了一个可以灵活调度的运行时变量,而不是一道不可逾越的硬件门槛。

五、核心技术:全局 LRU Expert Cache

说实话,FreeToken 压根不会让每个 Expert 都跑去系统内存重新加载一遍。

它在 GPU 显存里专门搞了个共享的 Expert Cache,靠 LRU(Least Recently Used)策略来管。最近老被调用的 Expert 就尽量留在显存里;等显存不够用了,优先踢掉那些闲了好一阵子的。

话说回来,你猜怎么着?这 Cache 可不是按某一层单独管的,而是当成跨层共享的 Expert 缓存池在用。这么一来,有限的 VRAM 总算能被利用得更充分一些。

六、核心技术:面向 Agent 的语义状态复用

说实话,FreeToken 没停在普通聊天优化上。

它盯的是 Coding Agent 和工具调用这些场景——这才是真正费算力的地方。

你想想 Agent 的工作流程:

用户问 → 思考 → 调工具 → 拿结果 → 改上下文 → 再来一轮推理……是不是有点绕?

每调一次工具,Prompt 都可能变。

按老办法,历史上下文一大堆,重新 Prefill 根本扛不住。

所以 FreeToken 的做法是,在特殊 Token 边界埋下语义锚点检查点——比如对话轮次、Thinking 区块、Tool Call 和 Tool Output。

上下文一改,系统直接找修改位置前最近的那个有效 Checkpoint,从那儿接着算。

不用回头重跑全部历史。

这设计特别适合 Coding Agent,对吧?

因为 Agent 改上下文的地方,往往都有明确的语义边界——正好卡在锚点上。

七、核心技术:显存动态热调整

说实话,消费级显卡本来就不是为 AI 推理专门设计的。

你想想看,一个普通用户可能同时开着浏览器、打打游戏、跑跑 Blender、剪个视频、渲染个 3D……各种 CUDA 程序都能往上怼。这时候显存使用情况肯定是一会儿高一会儿低的,对吧?

FreeToken 的做法是把 GPU Expert Cache 做成一个可以随时伸缩的资源池。我觉得这个设计挺关键的——跑着跑着 VRAM 变小了,它能在安全调度点自动缩小 Cache,把更多的 Expert 挪到 CPU 内存里;反过来显存释放出来了,Cache 就能重新扩大。

官方 CLI 已经给了 ft ctl cache --moe ... --kv ... 这类接口,Cache 可以直接在线重建和调整,推理引擎不用重启,主机端的 Expert 权重也省去了重新加载的麻烦。

八、实测性能

说实话,FreeToken 这篇论文里的测试结果,真的挺让人意外的。

我看了下他们在 RTX 5090 上的表现——

  • Qwen3.6-35B-A3B:大概 77–83 tok/s,这速度相当猛了
  • DeepSeek-V4-Flash:约 22–25 tok/s
  • 跟其他端侧推理系统比,Decode 吞吐直接拉高了 1.5–2.3 倍,差距还挺明显的
  • 五台消费级机器一起测,提升幅度在 1.3–2.1 倍左右
  • 最让我印象深刻的——8GB 显存的 RTX 4060 笔记本,跑 35B 模型居然能到 39.3 tok/s……
  • 32GB 显存的游戏 PC,直接就能交互式跑 284B 的模型
  • 单张 RTX PRO 6000 更是能扛住 753B 的 GLM-5.2,论文里说吞吐量大概是 llama.cpp 的两倍

话说回来,他们测 TTFT 的时候,把所有最坏情况都压在了 44 秒以内。而对比的基线系统呢?有些场景直接飙到 150 秒以上。你猜怎么着?这差距可不是一点半点。

不过我觉得吧,这些数字得理性看待——它们只是论文作者在自己特定的硬件、模型、量化格式和工作负载下跑出来的结果。所以,不是每个 RTX 4060 或者 5090 用户都能直接拿到一模一样的速度,对吧?这一点得心里有数。

九、目前支持什么模型和硬件?

说实话,FreeToken 目前主要面向 Linux x86_64 + NVIDIA GPU + CUDA 13 这个组合。NVIDIA 驱动得 r580 以上,Python 也要 ≥3.10。对了,官方倒是也出了 Windows 和 Linux 的桌面 App,算是比较贴心了。

现在官方已经验证过的模型:

  • DeepSeek-V4-Flash
  • GLM-5.2 —— 最近挺火的
  • GLM-4.7
  • Qwen3.6-35B-A3B,Qwen3.5-35B-A3B,还有 Qwen3-30B-A3B 这一大家子
  • GPT-OSS-120B 和 20B
  • Gemma-4
  • MiniMax-M2.5
  • Muse-Glimmer

MoE 后端方面,fusedoffloadcpuhybridauto 都有。

其中 hybrid 是 CPU 与 PCIe 动态混合执行的模式,auto 则是根据模型类型加上本机带宽测试的结果自动选策略——感觉这个设计挺合理的,对吧?

话说回来,官方还特别注明了一点:多模态模型现在还是按纯文本方式提供服务。另外 DeepSeek-V4 的话,得保留 checkpoint 里的 inference/config.json,漏了这个可能就跑不起来……

十、如何快速使用?

官方给了个 CLI 安装方式,挺方便的:

uv venv
source .venv/bin/activate
uv pip install "freetoken[accel]"

装完之后直接启动模型就行:

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

参数这里也能直接填 Hugging Face 的 Repo ID,省事。

启动以后,FreeToken 接口是跟 OpenAI 兼容的:

/v1/chat/completions
/v1/responses
/v1/models

另外也支持 Anthropic 的 API:

/v1/messages
/v1/messages/count_tokens

说白了就是,你现有那些支持 OpenAI 或者 Anthropic 接口的客户端,改一下 Base URL 就能直接用。这设计我倒是觉得挺聪明的。

Coding Agent 这边官方 CLI 还做得更细:

ft launch claude
ft launch codex
ft launch openclaw
ft launch opencode

一条命令,自动配好对应 Agent 去用 FreeToken 服务。你猜怎么着?连配置都不用手动折腾了……

十一、项目地址

官网:https://www.flashml.ai/

GitHub:https://github.com/FlashML-org/FreeToken

论文:https://arxiv.org/abs/2608.16157

FAQ

FreeToken 是什么?

说实话,这个东西挺有意思的。FreeToken 是一套专门给端侧硬件设计的 MoE(Mixture-of-Experts)推理系统,背后的研究团队阵容挺强——Shuo Yang、Song Han、Matei Zaharia、Ion Stoica 这些人,论文是 2026 年 8 月刚公开的,所以还挺新的。

FreeToken 支持哪些模型?

目前它已经支持了 20 多种 MoE 模型,我粗略列一下哈:

- DeepSeek-V4-Flash
- GLM-5.2、GLM-4.7
- Qwen3.6-35B-A3B、Qwen3.5-35B-A3B、Qwen3-30B-A3B
- GPT-OSS-120B/20B
- Gemma-4
- MiniMax-M2.5
- Muse-Glimmer
……还有好几个我没记全的。

FreeToken 的性能表现如何?

我倒是认为这数据还挺能打的。在 RTX 5090 上跑 Qwen3.6-35B-A3B 能达到 77-83 tok/s,DeepSeek-V4-Flash 大概 22-25 tok/s……你猜怎么着,相比其他端侧推理系统,Decode 吞吐整体提升了大约 1.5 到 2.3 倍。这个提升幅度,我觉得还是挺值得关注的一个点……