Mesh LLM:把散落的 GPU 变成一个统一推理集群
> 来源: https://github.com/michaelneale/mesh-llm
> 日期: 2026-04-04
> 作者: Michael Neale(CloudBees 联合创始人)
> 类型: 分布式 LLM 推理 / 开源
> 技术栈: Rust + llama.cpp (fork) + iroh (QUIC) + Node.js
🎯 一句话版本
家里有两三台机器,每台 GPU 都跑不动 70B 模型?Mesh LLM 把它们组成一个 mesh,自动分配层/专家到各机器,暴露为一个统一的 OpenAI 兼容 API。一行命令安装,一行命令启动。
解决什么问题?
你有:
- 一台 RTX 4090(24GB VRAM)
- 一台 MacBook Pro M3(36GB unified)
- 一台旧笔记本(16GB VRAM)
你想跑:
- Qwen3-235B(MoE,需要 ~120GB)
- DeepSeek-R1(需要 ~90GB)
传统方案:放弃。或者买一台 A100。
Mesh LLM:
# 机器 A
mesh-llm --model Qwen3-235B
# 机器 B(加入 mesh)
mesh-llm --join <token>
# 机器 C(加入 mesh)
mesh-llm --join <token>
# 现在三台机器组成一个推理集群
# 每台机器上都能用: curl http://localhost:9337/v1/chat/completions
核心技术
三种分布策略(自动选择)
模型放得下一台?
└─ YES → 本地跑,零网络开销
└─ NO → 是 MoE 模型?
└─ YES → Expert Parallelism(零跨节点推理流量)
└─ NO → Pipeline Parallelism(按 VRAM 分层)
Pipeline Parallelism(Dense 模型)
Transformer 有 N 层,按各节点 VRAM 比例分配:
机器 A (24GB): 层 0-20 ←── llama-server (协调者)
机器 B (36GB): 层 21-50 ←── rpc-server
机器 C (16GB): 层 51-63 ←── rpc-server
数据流:A 算完前 20 层 → 中间张量传给 B → B 算完传给 C → 返回。
延迟设计的关键洞察:HTTP streaming 是延迟容忍的(TTFT 慢一点没关系),RPC 是延迟放大的(每层都走一次网络)。所以 llama-server 永远和 GPU 在同一台机器上,mesh 只通过 HTTP 隧道传输最终结果。
Expert Parallelism(MoE 模型)🌟
这是 Mesh LLM 最亮的设计。
MoE 模型(Qwen3-MoE、DeepSeek、Mixtral)每个 token 只激活少量 experts。Mesh LLM 的策略:
1. 从 GGUF header 自动检测 MoE 架构
2. 读取 expert routing 统计,识别哪些 experts 最常被用到
3. 关键 experts 全节点复制,其余 experts 分散到各节点
4. 每个节点运行独立的 llama-server
结果:推理时零跨节点流量。因为每个节点都有完整的 trunk + 足够的 expert subset。
Session 通过 hash routing 保证 KV cache locality。
性能优化
| 优化 | 效果 |
|---|---|
| Zero-transfer GGUF loading | 模型加载 111s → 5s |
| RPC round-trip reduction | 每 token 558 次 → 8 次 |
| Direct server-to-server tensor | 跳过 client 中继 |
| Speculative decoding | +38% throughput(代码场景 75% acceptance rate) |
Mesh 网络
基于 iroh(Rust QUIC 实现),支持:
- NAT 穿越(家庭网络直接用)
- Private mesh(invite token)
- Public mesh(
--publish+--auto发现) - Named mesh(
--mesh-name "poker-night",所有人跑同一命令自动组网)
作者背景
Michael Neale — CloudBees 联合创始人 & 首席科学家。
CloudBees 是 Jenkins(全球最大的 CI/CD 平台之一)背后的商业公司。Michael 是长期 OSS 开发者,在分布式系统和开发者工具领域深耕 20+ 年。
这个背景很重要:他理解"开发者想要什么样的工具"——简单、一行命令、别让我配置。Mesh LLM 的 DX 明显带着 Jenkins/CloudBees 的基因。
Roadmap 亮点
SSD Expert Streaming
在单台 48GB Mac 上跑 Qwen3.5-397B:expert weights 存在 NVMe SSD 上,推理时按需 pread()。受 flash-moe 启发,已在 MacBook Pro M3 Max 上实现 5.5 tok/s。
关键教训:Trust the OS page cache。所有自建的 expert cache(Metal LRU、malloc、tiered I/O)都让性能变差——删掉自建 cache 反而提速 38%。和 PostgreSQL 的 shared_buffers 是同一个道理。
移动端
扫 QR code → 加入 mesh → 用手机和 235B 模型聊天。"AirDrop for AI"。
Agent 集成
mesh-llm run goose # 启动 Goose agent,后端接 mesh
mesh-llm run opencode # OpenCode 连 mesh API
与我们的关联
直接应用场景
我们有两台机器:
- VPS(本机):1 vCPU, 2GB RAM, 无 GPU
- ub2:i9-13900K, RTX 4090 (24GB VRAM), 63GB RAM
ub2 上已经跑着 Ollama + 多个模型。Mesh LLM 的价值在于:
如果我们买了第二台 GPU 机器,比如一台 Mac Studio M4 Ultra (192GB),可以用 Mesh LLM 把两台组成集群:
- ub2 (24GB VRAM) + Mac Studio (192GB) = 跑 DeepSeek-R1 671B 完全版
- 或者同时服务多个模型,按需求自动分配
目前只有一台 GPU 机器 → Mesh LLM 暂时用不上。但值得关注。
❓ ub2 + Mac Mini 能组 Mesh 吗?
可以,但效果取决于 Mac Mini 配置和网络延迟。
组合效果估算
| Mac Mini 配置 | 总可用显存 | 能跑什么 | 价值 |
|---|---|---|---|
| M4 基础款 (16GB) | 24 + 16 = 40GB | 32B Q4 模型 | ⚠️ 意义不大,ub2 单独能跑 |
| M4 Pro (24GB) | 24 + 24 = 48GB | 70B Q4 模型 | ✅ 有用,单台都跑不动 70B |
| M4 Pro (48GB) | 24 + 48 = 72GB | 235B MoE / 70B Q8 | ✅✅ 很有价值,推荐 |
延迟约束
Mesh LLM 有 80ms RTT 硬限制——超过 80ms 的节点只能做 API client,不参与模型分割。
- 同一局域网(< 5ms RTT):Dense 和 MoE 模型都能用
- Tailscale 远程连接(通常 30-80ms):
- MoE 模型 ✅ — Expert parallelism 零跨节点推理流量,延迟只影响 TTFT
- Dense 模型 ⚠️ — 每 token 都走网络,接近 80ms 上限可能被排除
建议
1. 买 Mac Mini 选 48GB 版本,性价比最高
2. 优先跑 MoE 模型(Qwen3-MoE、DeepSeek 等),对网络延迟不敏感
3. 如果能把两台放在同一局域网,Dense 模型也可以
vs Ollama
| Ollama | Mesh LLM | |
|---|---|---|
| 单机推理 | ✅ 极简 | ✅ 也支持 |
| 分布式推理 | ❌ 不支持 | ✅ 核心能力 |
| MoE expert sharding | ❌ | ✅ 零跨节点流量 |
| 模型管理 | ✅ pull/push | 基础(指定 GGUF) |
| API 兼容 | OpenAI 兼容 | OpenAI 兼容 |
| 成熟度 | 生产就绪 | 早期(参考实现) |
| 多模型 | ✅ | ✅(不同节点不同模型) |
对 Qwopus 的启发
我们之前在 ub2 上跑 Qwopus(27B Q4_K_M),单卡 24GB 刚好够。如果想跑更大的蒸馏模型(比如 70B 级别),Mesh LLM 是一个备选方案——前提是加一台 GPU 机器。
局限性
1. "参考实现":README 明确说是 reference impl,不是生产就绪的产品
2. iroh relay 不稳定:长时间运行后连接退化("Studio pattern: fresh=250ms, 10h=isolated")
3. Pipeline parallelism 延迟:Dense 模型跨节点每 token 都有网络开销
4. 没有认证/安全:public mesh 任何人可以加入和使用
5. 依赖 llama.cpp fork:而非上游,可能跟不上
评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 创意 | 9/10 | MoE expert sharding 零跨节点流量,架构设计精妙 |
| 实用性 | 7/10 | 需要多台 GPU 机器才有价值,覆盖面窄 |
| 技术实现 | 9/10 | Pipeline + Expert parallelism + speculative decoding,优化到位 |
| DX (开发者体验) | 9/10 | 一行安装、一行启动、一行加入,CloudBees 基因 |
| 成熟度 | 5/10 | 参考实现,relay 不稳定,缺认证 |
| 与我们的相关性 | 5/10 | 目前只有一台 GPU 机器,暂时用不上 |
| **综合** | **7.5/10** |
关键链接
- GitHub:https://github.com/michaelneale/mesh-llm
- Roadmap:https://github.com/michaelneale/mesh-llm/blob/main/ROADMAP.md
- MoE 设计文档:https://github.com/michaelneale/mesh-llm/blob/main/mesh-llm/docs/MoE_PLAN.md
- 作者:https://www.michaelneale.net/
- flash-moe(SSD streaming 参考):https://github.com/danveloper/flash-moe
- iroh(QUIC 网络层):https://iroh.computer/
> 一句话总结:Mesh LLM 是 CloudBees 联合创始人做的分布式 LLM 推理框架——把多台机器的 GPU 组成 mesh,自动决定用 pipeline parallelism 还是 expert sharding,暴露为统一的 OpenAI API。MoE expert parallelism 做到零跨节点推理流量,这是真正的架构突破。一行命令安装+启动的 DX 无可挑剔。但目前是"参考实现"级别,适合有多台 GPU 机器的 homelab 玩家,我们暂时只有一台 GPU 机器用不上——但如果未来加机器,这是首选方案。