AB
AiBoss
project

pooled - 把多台设备的浏览器拼成一台机器,跑大模型推理

pooled 是一个浏览器内的点对点 LLM 推理项目:房间里每台设备各持有一部分模型层,用 WebRTC 直连传递隐藏状态,合起来跑单个设备跑不动的大模型。项目由 Nehanth 维护,MIT 许可,2026-09-28 发布 v1.0.0,截至 2026-09-30 星标 538。本文据官方仓库信息与项目自述整理其能力、入口与限制。

pooled 是一个在浏览器里做点对点 LLM 推理的开源项目。按项目自述,它把同一个开放模型拆到房间里的多台设备上:你的笔记本、朋友的台式机、一部手机各持有一部分模型层,各自用自己的 GPU 跑自己那几层,合起来跑一个任何单台设备都跑不动的模型。设备之间通过 WebRTC 直连传递隐藏状态,没有服务器参与计算。据项目说明,使用它不需要安装、不需要账号,朋友打开同一个链接即可加入。它面向的场景是:手边有几台性能一般的设备,想一起跑一个更大的开放模型,用于聊天或让模型在标签页里写代码。

维护者与状态

项目由 Nehanth 维护,仓库创建于 2026-09-01,最后提交时间为 2026-09-30。最新 release 为 v1.0.0,发布于 2026-09-28。截至 2026-09-30,仓库星标数为 538。项目另有官网 pooled.run。许可证为 MIT。

主要能力

以下内容均来自项目自述(README 与站点说明),未经本站实测。

  • 分层的点对点推理。据项目说明,房间里每台设备持有模型的一部分层,并在自己的 GPU 上用项目自研的 WGSL kernel 执行。每生成一个 token,一个很小的隐藏状态(项目称 27B 上约 10 KB、MoE 上约 4 KB)通过 WebRTC 直连在标签页之间传递,由 host 把结果变成下一个词。项目自述称没有服务器承担任何「思考」工作。
  • 房间内可用的模型。据 README 列出的表格,房间当前支持三类模型:Qwen 3.8 27B(Q4_0,全房间合计约需 17 GB,混合 Gated DeltaNet 与注意力结构,自带用于投机解码的 draft 层,16K 上下文、最高 32K);Qwen 3.6 35B MoE(Q4_0,合计约需 22.5 GB,256 个专家、每 token 激活 8 个,项目称其解码速度明显快于 27B,32K 上下文、最高 64K);Qwen3 1.7B(Q8_0,合计约需 4 GB,面向由手机和轻量笔记本组成的房间,8K 上下文)。
  • 按需下载与缓存。据项目说明,每台设备只下载自己负责的那部分层,来源可以是 Hugging Face,也可以是房间里已经持有这些层的另一台设备,并会缓存供下次使用。若有设备离开,房间会提示,host 可以一键重新分配层。
  • Code 模式。据项目说明,把房间切到 Code 后可以提出需求(例如「做一个俄罗斯方块」),房间里的模型会跑一个小型 agent 循环:写文件、在沙箱预览里以虚拟 localhost(:5173)提供服务、读取自己的控制台报错并修复。房间里所有人都能看到这些文件,并在自己的屏幕上运行同一份预览。文件存放在 host 的浏览器中,或 host 指定的磁盘文件夹里;对真实文件夹的修改需要 host 批准。
  • 把房间当作 API 使用。据项目说明,房间可以把模型以 OpenAI 或 Anthropic 兼容接口的形式提供给外部工具,例如 Continue、Open WebUI、LiteLLM、openai 与 anthropic SDK 以及 curl。房间页头部的 Serve API 按钮会给出该房间对应的命令,在自己的电脑上运行即可(需要 Node 22 或更新版本,本机不需要 GPU)。
  • 正确性校验。据项目自述,投机解码、批量 prefill 以及各类 kernel 技巧都有 golden test 覆盖,以保证投机解码的输出流与普通解码一致。

使用入口

仓库地址:https://github.com/Nehanth/pooled;官网:https://pooled.run。

据项目说明,本地运行方式为克隆仓库后启动静态服务:

git clone https://github.com/Nehanth/pooled && cd pooled
npx -y serve -l 8080 .
# 然后打开 http://localhost:8080/room

据项目说明,serve 会读取 serve.json 中的 /room 与 /r/:code 重写规则,生产环境在 vercel.json 中使用同样的两条重写,因此两个文件需要保持一致。

据项目说明,把房间作为 API 使用时的命令形如:

npx @pooled/cli serve ABCD
# OpenAI  http://127.0.0.1:8080/v1
# Anthropic http://127.0.0.1:8080

据项目说明,这个桥接进程以「不带任何层」的 API 客户端身份加入房间,请求实际在房间的 GPU 上按队列逐个执行,并会按房间的可见性设置显示在聊天中;它只监听 127.0.0.1,可通过 POOLED_TOKEN 要求密钥。

测试方面,据项目说明,npm test 为无 GPU 的单元测试(Deno),npm run e2e:code 为 Code 模式的端到端测试,另有针对预览沙箱与合成模型的脚本;GPU 相关测试包括基于 Qwen3 0.6B 的 golden test 与 27B 套件,需要 WebGPU 环境与 Deno 2。无 GPU 的测试在 headless Chromium 上以 SwiftShader 运行 WebGPU。

许可与限制

许可证为 MIT。以下限制来自项目自述,使用前建议对照仓库文档确认。

  • API 能力边界。据项目说明,v1 的 API 仅支持聊天:不支持工具调用、图像与 JSON 模式,遇到这类请求会返回明确的 400。
  • 隐私与可见性。据项目说明,通过 API 发出的 prompt 会送到房间的 host;除非 host 限制了回答的可见范围,否则房间内所有人都能看到。桥接进程只监听本机 127.0.0.1。
  • 性能取舍。据项目自述,普通解码每生成一个 token 需要每台设备各付一次延迟,因为 token 要从 host 经 worker 再返回;三台设备在 50 ms 单向延迟下大约会给每个 token 增加 150 ms。项目称投机解码是让房间在真实网络下可用的关键。项目同时说明,其原生解码速度仍落后于 llama.cpp,prefill 是差距最大的部分,更快的 prefill 被列为路线图上的首要事项。
  • 硬件与运行环境。据项目说明,参与推理的设备需要能运行 WebGPU;作为 API 桥接的机器需要 Node 22 或更新版本,但不需要 GPU。GPU 测试需要 WebGPU 环境与 Deno 2,并从 models/ 读取模型文件。
  • Code 模式的权限。据项目说明,agent 能触碰与不能触碰的范围写在 SECURITY.md 中;对真实磁盘文件夹的修改需要 host 批准。

项目自述中提到的架构、kernel、协议、模型与设计文档分别位于仓库的 docs 目录下,路线图以每个计划项一个文件的形式放在 roadmap 目录中。