加州大学伯克利分校麻省理工学院的研究人员推出了FreeToken,这是一款开源推理引擎,旨在弥合前沿混合专家模型与消费级硬件之间的差距。该项目的共同作者包括Databricks联合创始人Matei Zaharia和Ion Stoica,以及Song Han、Kurt Keutzer等人。该项目将边缘AI的范式从把个人机器当作受限的数据中心节点,转变为将其作为弹性的异构计算结构来管理。

消费级硬件上的解码瓶颈

打开网易新闻 查看精彩图片

稀疏MoE架构每个token只计算总参数的一小部分,但解码需要跨数千亿个非活跃权重进行路由。在数据中心环境中,NVLink这类高带宽互联掩盖了专家传输的开销。然而在消费级硬件上,PCIe吞吐量和主机内存延迟构成了严重的解码瓶颈。现有的边缘运行时依赖静态专家卸载,非活跃权重驻留在系统内存中,激活时同步传输到GPU,缓存未命中时执行会完全停滞。

为了解决这个问题,FreeToken用一种动态协同调度方案取代了刚性卸载。FreeToken不再让GPU在缓存未命中时停顿,而是根据实时互联吞吐量,将token计算拆分给CPU核心和GPU张量核心。该系统采用快速权重格式和全层双缓冲,使通过PCIe传输权重的过程与活跃计算层完全重叠。弹性内存管理器还可以在运行时动态重新分配VRAM,用于KV缓存条目和常驻专家槽位之间,而无需触发模型重新加载。

针对编程助手和自主代理的优化

现代编程助手和自主代理带来了独特的执行模式:频繁的提示修改、工具调用响应和思考块不断改变上下文窗口。标准引擎在前缀发生变化时会丢弃线性KV缓存,触发代价高昂的全序列重新计算。FreeToken集成了语义锚点检查点机制,在逻辑任务边界缓存中间注意力状态和循环激活。当代理编辑中间工具参数或注入外部执行输出时,FreeToken会复用已有的子序列状态,而不是让提示缓存整体失效。

研究论文中的图1展示了FreeToken的整体架构,标题为“FreeToken:面向边缘原生的高效MoE服务与带宽自适应执行”。

与现有推理引擎的差异

  • Ollama和llama.cpp:主要针对量化格式和逐层卸载做了优化,但缺少对稀疏专家在主机和设备之间的动态负载拆分。
  • vLLM和SGLang:面向数据中心吞吐设计,依赖PagedAttention和连续批处理,默认高互联带宽,而不是异构内存层级。
  • KTransformers:采用静态的CPU/GPU分配策略,没有FreeToken这种根据实时带宽动态调整的协同调度机制。

从研究团队公布的信息来看,FreeToken的关键突破在于把消费级硬件上的互联带宽限制从刚性约束变成了可调度的资源。传统方案把非活跃权重同步搬进GPU,执行过程被传输延迟卡住;FreeToken则让权重传输和计算同时进行,CPU和GPU各自承担一部分token计算任务。这种设计让个人电脑不再只是被动等待数据到位,而是可以主动利用主机端算力来消化传输间隙。

对于开发者来说,这意味着在普通硬件上运行大规模MoE模型的体验可能发生明显变化。论文给出的对比数据显示,在同等MoE模型上,FreeToken相对Ollama和llama.cpp的解码速度有3到4倍提升,预填充阶段更是达到6到30倍的差距。这些数字来自研究团队的实验环境,具体到不同硬件配置和模型规模上,实际表现还需要进一步验证。

FreeToken目前以开源形式发布,研究团队将其定位为边缘原生的MoE服务方案。从论文披露的技术细节看,这套系统同时解决了两个层面的问题:一是权重传输与计算的并行化,二是动态上下文变化下的缓存复用。前者针对消费级硬件的带宽短板,后者针对编程助手和自主代理这类新兴工作负载的频繁提示修改需求。