Mesh LLM:在 iroh 上进行分布式人工智能计算
阅读原文· iroh.computerMesh LLM 把多台机器的 GPU 拼成一个推理集群,让大模型在自建网络上运行。对想省钱且需隐私的开发者来说,这是一个值得尝试的实用工具。
Mesh LLM 是一个开源项目,能将用户多台机器上的 GPU 和内存池化,对外暴露兼容 OpenAI 的 API。它通过 iroh 网络库实现点对点连接,无需中央服务器。请求可在本地 GPU 运行、路由到已加载模型的节点,或将大模型按层分区(内部称“Skippy”)流水线式拆分到多台机器。系统内置 40 多个模型,从 5 亿参数到 235B MoE 巨模型均可支持。软件体积约 18 MB,启动后以 localhost:9337/v1 提供服务。
当人们想象运行一个大语言模型时,他们脑海中浮现的是数据中心。一排排属于别人的 GPU、按量计费的 API,以及随着你业务成功而逐月增长的账单。你把提示词发送到一个黑箱里,然后祈祷价格、模型和隐私政策都保持在你注册时的样子。
对许多团队来说,这是一笔糟糕的交易。你放弃了控制权:无法掌控模型何时更新、你的数据去向何处、以及你的工作负载运行在什么硬件上。而且随着使用量增长,账单也随之增加,除了"付更多钱"之外,你没有任何杠杆可用。
Mesh LLM 则是一种不同的形态。它把你已有的 GPU 和内存汇集起来,横跨任意数量的机器,并将整个集群暴露为一个兼容 OpenAI 的 API。启动一个节点。之后再加更多。让这个网格来决定模型是运行在你面前的机器上、路由到对等节点、还是拆分到多台机器上。
问题:AI 很贵,而且它是别人的
流行的模型都是庞然大物。大多数人通过 UI 或 API 密钥来访问它们,并付费让大型提供商来运行一切。这很方便,但这也是一种投降。你无法控制模型何时更新、它运行在什么内存中、或者底层是什么硬件。
许多依赖这些模型的企业和服务想要的是相反的东西:更多的控制权、更强的可插拔性、更低的成本。他们的 GPU 散落在办公室、储藏间、办公桌下。他们缺少的是一种让这些机器像一台机器一样协同工作的方法。
Mesh LLM:自己运行模型
它的卖点很简单。无需购买更大的 GPU 就能运行更大的模型。与你的团队私下共享算力,或与全世界公开共享,为智能体和聊天提供动力。将任何 OpenAI 客户端指向 `http://localhost:9337/v1`,然后就不用再关心实际工作在哪里完成。
在底层,Mesh LLM 将模型计算分布在一个由 iroh 端点组成的网格上。一个请求可以通过三种方式得到服务:
- 在本地运行,使用本机的 GPU。
- 路由到已经加载了该模型的对等节点。
- 将单个盒子装不下的模型,作为流水线拆分到多台机器上。
它是如何工作的
该架构是可插拔的。插件在清单中声明它们提供的内容,运行时负责启动它们、路由调用,并通过 MCP、HTTP、推理和网格事件暴露其能力。目录中预置了 40 多个模型,从适合在笔记本电脑上运行的 5 亿参数模型,到 235B 的混合专家巨无霸。
对于这些巨无霸模型,Mesh LLM 有一种拆分模式(内部称为“Skippy”)。一个模型会按层范围被划分为多个阶段:第 0 到 15 层放在一个节点上,第 16 到 31 层放在下一个节点,以此类推,形成一条流水线。激活值从一个阶段流向下一个阶段,这样一来,几台配置一般的机器就能运行一个它们单独都无法承载的模型。OpenAI 客户端完全看不到这一切,它仍然只与 localhost 通信。
它是如何使用 iroh 的
每个节点,无论是提供模型服务还是只发送请求,都会启动一个 iroh 端点。该端点就是节点的身份标识、一个公钥,也是它唯一的网络接口。没有中央服务器。iroh 负责处理打洞、NAT 穿透和中继回退,以便在任何两个节点之间(无论它们位于何处)建立一条直接、经过身份验证的 QUIC 连接。
为了在开放的互联网上保持这一功能,Mesh LLM 在不同区域运行了两个 iroh 中继,这样无法直接互通的节点总能就近找到一条回退路径。
整个协议依赖于 QUIC 的 ALPN 协商。共有三种:
| ALPN | 承载内容 |
|---|---|
| mesh-llm/1 | 主网格:gossip 协议、路由、HTTP 隧道、插件通道 |
| mesh-llm-control/1 | 所有者控制平面(配置同步、所有权证明) |
| skippy-stage/2 | 用于拆分模型的延迟敏感型激活值传输 |
在主要的 mesh-llm/1 连接内部,所有内容都是双向 QUIC 流,每个流都带有一个单字节标签,用于标识该流的类型。一个连接承载着 gossip 协议、推理、路由查询和对等节点生命周期事件,所有这些都通过该首字节进行解复用:
| 字节 | 流类型 | 描述 |
|---|---|---|
| 0x01 | GOSSIP | 对等节点公告(模型、GPU、RTT、能力) |
| 0x04 | TUNNEL_HTTP | 代理到对等节点的推理请求 |
| 0x05 | ROUTE_REQUEST | “你托管了哪些模型?” |
| 0x06 | PEER_DOWN | 对等节点宕机通知 |
| 0x07 | PEER_LEAVING | 优雅关闭 |
| 0x08 | PLUGIN_CHANNEL | 插件 RPC |
| 0x0e | DIRECT_PATH_REQUEST | 共享用于 NAT 穿透的直接地址 |
其精妙之处在于它能为你带来什么。iroh 能在任意两台机器之间建立经过身份验证、可穿透 NAT 的 QUIC 连接,并通过公钥进行寻址。因此,“路由到对等节点”和“将流激活到下一流水线阶段”就变成了与“与本地主机通信”相同的基本操作,只是端点 ID 不同。网络不再是你需要操心的事情。
iroh 提供了安全传输层。Mesh LLM 在其之上构建了自己的 gossip 层,从而精确控制谁能加入网格、哪些版本兼容以及哪些对等节点值得信任。
快速上手
用户可以安装这个轻量级软件(约 18 MB),然后选择加入公共网格或配置私有部署。该系统对任何标准 OpenAI 客户端都表现为 localhost:9337/v1。
基于 iroh 的 Swift SDK,一款移动端应用正在开发中。其计划是采用新兴的智能体标准 ACP,以便其他客户端也能加入网格。贯穿始终的主线与驱动整个项目的初衷一致:更多点对点连接,更少封闭服务器,并且没有锁定效应。
- 查看代码
- Mesh LLM 网站
Iroh 是一个即插即用的任意设备联网库。你可以从现成的协议生态系统中组合出所需功能,也可以在基于原始管道的简洁抽象层上完全自定义。Iroh 是开源的,并且已在数十万台设备上投入生产运行。
要开始使用,请查看我们的
文档
,直接深入
代码
,或通过我们的
Discord 频道
与我们交流。