Nehanth/pooled
Peer-to-peer LLM inference in the browser: pool your devices to run big open models, for chat and coding agents.
什么是 Pooled?
Pooled 是一个基于 Web 的系统,它允许一组普通设备(笔记本电脑、台式机、手机,甚至是朋友的电脑)组合它们的 GPU,以运行单个大型语言模型 (LLM),而这些设备单独都无法承载该模型。设备通过打开 URL 加入一个 房间;每个设备仅下载它将要计算的模型切片(一组层),并使用自定义 WebGPU (WGSL) 内核运行这些层。对于生成的每个 token,主机通过直接的 WebRTC 数据通道向工作节点发送一个微小的隐藏状态数据包(几 KB),收集最终的 logits,采样下一个单词,然后重复此过程。整个流水线都在浏览器中完成——无需原生安装,没有云服务器进行推理,离开浏览器的唯一内容是模型权重文件(从 Hugging Face 或对等节点获取)。
关键特性(如 README 中所述)
| 特性 | 含义 | 重要性 |
|---|---|---|
| 浏览器内点对点 LLM 推理 | 使用 WebGPU 进行设备端 GPU 计算,使用 WebRTC 进行低延迟点对点连接。 | 无服务器端 GPU 成本;任何拥有现代浏览器的人都可以贡献算力。 |
| 层级模型分片 | 每个参与者持有模型层的一个连续块(例如,笔记本电脑持有 0-21 层,台式机持有 22-42 层,手机持有 43-63 层)。 | 允许在跨设备分布的总内存下运行超大模型(270-350 亿参数)。 |
| 支持的模型 | Qwen 3.8 27B (Q4_0, ~17 GB 总计), Qwen 3.6 35B MoE (Q4_0, ~22.5 GB 总计), Qwen 3 1.7B (Q8_0, ~5.6 GB)。 | 证明了密集型和混合专家 (MoE) 架构均可与该系统配合使用。 |
| 推测解码 | 模型包含一个内置的草稿层来提议 token;主机验证它们,从而显著加快生成速度。 | 使每秒 token 数接近单 GPU 上的原生 llama.cpp,同时保持准确性。 |
| 代码模式 | 一个代理循环,可以编写文件、提供沙盒预览 (:5173)、读取控制台错误并迭代修复它们。 |
将共享的 LLM 变成一个浏览器内编码助手,可以构建所有参与者都能看到的小型应用(例如俄罗斯方块游戏)。 |
| 兼容 OpenAI 的 Serve API | 一个微小的 CLI (npx @pooled/cli serve …) 将房间暴露为 OpenAI 风格的 /v1/chat/completions 端点(也支持 Anthropic 消息)。 |
让现有工具(Codex CLI, Claude Code, Continue, LiteLLM, curl 等)像与托管 API 对话一样与 pooled 模型交互。 |
| 无需安装,无需账户 | 用户只需打开链接;主机可以选择使用令牌保护房间。 | 降低了临时协作或演示的门槛。 |
| 中继回退 | 如果企业网络阻止 UDP,系统可以回退到 TURN 中继(443 端口上的 TCP/TLS)。 | 使系统在防火墙后可用,同时仍将模型权重保留在中继之外。 |
| 测试与基准测试 | 单元测试(仅 CPU)、无 GPU 的端到端测试、0.6B 模型上的 GPU 黄金测试以及详细的基准测试日志。 | 表明该项目在设计时考虑了可重复性。 |
| 开源且 MIT 许可 | 所有代码、内核和文档均在 MIT 许可下公开提供。 | 鼓励社区贡献和重用。 |
谁会使用它?
| 使用场景 | Pooled 如何提供帮助 |
|---|---|
| 实时编码演示 / 工作坊 | 参与者可以携带笔记本电脑和手机;模型集体运行,让演示者无需任何云积分即可展示 300 亿参数的 LLM。 |
| 注重隐私的团队 | 由于没有中央服务器处理提示词,只信任自己设备的团队仍然可以在本地运行强大的模型。 |
| 边缘设备研究 | 探索层级分片、MoE 卸载或 WebGPU 内核的研究人员可以直接在浏览器中进行实验。 |
| AI 增强型 Web 应用的快速原型设计 | 内置的代码模式提供了一个现成的代理,可以编写和提供代码,适用于快速概念验证。 |
局限性与开放挑战(项目方承认)
- 网络延迟至关重要 – 每秒 token 数会随着往返延迟的增加而下降;推测解码可以缓解但不能消除这种影响。
- 预填充速度 – 长提示词的第一个 token 仍然比原生 llama.cpp 慢;路线图将更快的预填充列为优先事项。
- 浏览器支持 – 仅 macOS 上的 Chrome 经过全面验证;iPhone 上的 Safari 可作为工作节点,但 Mac 上的 Safari 在内存压力下可能会重新加载。Firefox/Linux 需要手动启用 WebGPU。
- 隐藏状态的隐私 – 隐藏状态数据包没有经过加密保护;房间里的任何人都可以重建提示词。房间仅供受信任的参与者使用。
- 设备内存要求 – 即使拆分后,270-350 亿参数模型在整个房间内所需的总 RAM/VRAM 约为 17-22 GB,因此仅靠低端手机组成的房间无法托管最大的模型。
快速开始(来自 README)
# 克隆并托管静态站点
git clone https://github.com/Nehanth/pooled && cd pooled
npx -y serve -l 8080 . # 打开 http://localhost:8080/room
在每个参与者的浏览器上打开显示的 URL,点击“Start a room”,然后观察设备协商层分配。
总结
Pooled 是一个真正的开源项目,推动了协作式浏览器内 LLM 推理的前沿。它结合了 WebGPU 加速内核、基于 WebRTC 的点对点网络以及完整的兼容 OpenAI 的 API 界面,且无需任何原生安装。README 提供了详细的架构文档、性能数据和清晰的路线图,对于任何对分布式推理、浏览器端 AI 或构建完全在客户端运行的编码代理感兴趣的人来说,它都是一个可靠的参考。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目