Perplexity开源了自研本地推理引擎Lily,采用Rust编写并为Apple Silicon定制Metal内核,在M5 Max上实测推理吞吐量超过MLX-LM达1.35倍。
Perplexity 开源了 Lily,这是一个本地推理引擎,驱动着 Perplexity Computer 中的 Hybrid Compute 功能。它是一个单进程运行时:Rust 层加载 checkpoint 并驱动生成循环,OpenAI 兼容的 chat-completions API 流式输出 token,手写的 Metal kernel 执行模型推理。PyTorch 和 MLX 都不在执行路径中。Lily 的定位刻意狭窄——只有一个模型 Qwen3.6-35B-A3B,只运行在一个硬件系列上,而这种狭窄正是其性能优势的来源。
能部署吗?可以。一个独立的 demo 已在 pplx-garden 仓库中公开。这是一个基于 Rust 和 Metal 的推理服务器,通过极简的 OpenAI 兼容 HTTP API 提供贪心文本生成。4-bit checkpoint 大小为 19.4 GB,因此配备 32 GB 及以上统一内存的 Apple Silicon Mac 是现实的最低门槛;Perplexity 正在交付的 Hybrid Compute 产品要求 macOS 15+、最低 24 GB、最佳体验需要 32 GB。
Apple 的默认 Mac 堆栈是 MLX 加 MLX-LM,后者已经自带了一个 Qwen 实现,包含分组专家工作、融合的循环 Metal kernel 和 GQA 感知注意力。但它的操作必须保持跨架构可复用。Lily 放弃了这一点,将模型结构、执行计划和 kernel 选择都收敛到一个运行时中。
Qwen3.6-35B-A3B 存储了 35B 参数,每个 token 激活约 3B。路由器对 256 个专家打分并选出 8 个,同时还有一个共享专家处理每个 token。它还混合了 10 层全注意力层(使用分组查询注意力,16 个 query 头、2 个 KV 头)和 30 层 Gated DeltaNet 层。这产生了三种模式:不均匀的专家分组、对不断增长的 KV cache 的注意力、以及固定大小的循环。
Checkpoint 使用分组方式的仿射 4-bit 量化,每 64 个权重共享一个 bfloat16 的 scale 和 bias,约 70 GB 的 bfloat16 权重被压缩到 19.4 GB。Metal 4 tensor 操作消费 bfloat16,因此权重必须先重建。Lily 在分组 GEMM 内部一次处理一个 tile,将结果保存在 threadgroup 内存中并以 FP32 累加,扩展后的数组永远不会到达统一内存。在 Perplexity 的消融实验中,这种融合使端到端 prefill 提升了 77.4%(512 token prompt)。
将路由直方图、前缀扫描、scatter 和 block map保留在单个 GPU 命令缓冲区中,通过去除每个 MoE 层内的 CPU 同步,在 512 token 时提升了 89%。从 16 行 tile 切换到 32 行 tile(使用四个 simdgroups),在 2K 时提升了 13.2%;驻留在寄存器的 Gated DeltaNet 扫描提升了 5.6%。专家 GEMM 约占 prefill 时间的 90%。长 prompt 以有限块运行,这样临时激活值不会与权重和 cache 争夺内存。
Batch-1 decode 几乎没有权重复用,因此带宽设定了上限。记录的一次步骤启动了 795 个 kernel,形成 555 个顺序阶段;Lily 在一个并发 Metal pass 中记录真实依赖关系,使独立的 kernel 可以重叠。选中的 token 直接写入下一步的 GPU 驻留输入槽,消除了一次 per-token 的 CPU 往返,四个 kernel 链被融合以将中间结果保留在寄存器中。
合并的 cache 读取将 key 带宽从 33.8 提升到 47.9 GB/s,value 带宽从 42.0 提升到 61.8 GB/s。GQA 打包——四个 query 头共享一个 threadgroup,这样每行 KV 只加载一次——在 32K 时提升了 decode 23.8%。在 32K 及以上的固定块注意力布局在 32K 时提升 7.7%,64K 时提升 27.4%,128K 时提升 40.2%。
在 40 核、128 GB 的 M5 Max 上,batch 1 条件下,加载相同的 4-bit checkpoint 字节,对比 MLX-LM 最快的直接生成路径,在 256 到 128K token 的十个长度点测试,Lily 平均达到 4,156 prefill tokens/s对比 3,388(1.23x),170.0 decode tokens/s对比 126.4(1.35x)。在 4K prompt 和 4K context 条件下达到 5,749.9 和 186.6 tokens/s,对比 4,737.5 和 140.9,在每个记录点都更快:prefill 1.12–1.42x,decode 1.31–1.37x。在 192 个位置上的 teacher-forced 检查显示 Lily 的 perplexity 高 0.04%,相同 top-ranked token 出现率为 96.35%。
Lily 是一个运行在 Apple Silicon 上的 Rust + Metal 推理引擎,专为 Qwen3.6-35B-A3B 设计,路径中不含 PyTorch 或 MLX。
在 40 核、128 GB M5 Max 上,平均 prefill 速度是 MLX-LM 的 1.23 倍,decode 是 1.35 倍。
最大的 prefill 收益:GPU 驻留专家路由(+89%)和融入分组 GEMM 的反量化(+77.4%)。
最大的 decode 收益:GQA 打包(32K 时 +23.8%)和固定块注意力(128K 时 +40.2%)。
查看技术详情和 GitHub 仓库。也欢迎在 Twitter 上关注我们,不要忘记加入我们的 15 万+ ML SubReddit 并订阅我们的 Newsletter。等一下!你用 telegram 吗?现在也可以加入我们了。
需要与我们合作推广你的 GitHub 仓库或 Hugging Face 页面或产品发布或网络研讨会吗?联系我们
Asif Razzaq 是 Marktechpost Media Inc. 的 CEO。作为一位有远见的企业家和工程师,Asif 致力于将人工智能的潜力用于社会公益。他最近的创办是推出一个人工智能媒体平台 Marktechpost,其突出之处在于对机器学习和深度学习新闻的深入报道,既技术扎实又通俗易懂。该平台每月浏览量超过 200 万次,展示了其在受众中的受欢迎程度。