开发者生态
morning
Show HN:Lumabri – 使用 Colibri 在 P2P Swarm 上运行 Moe 模型
2026-08-14
1 阅读
约6分钟阅读
vforno
字号:
使用 colibri 引擎运行来自众多同行的大型专家混合模型。纯C,无依赖。一台机器共享一个型号。任何其他机器都可以与它聊天。预先不会下载任何内容:推理实际涉及的字节在首次使用时从对等方到达并保留在本地镜像中,因此第二个问题是从本地磁盘全速提供的。引擎二进制文件永远不会被修改。任何机器都可以加入,无论是否有 GPU。该引擎首先是为CPU和SSD构建的; GPU 只会让它变得更快,而不会有所不同,而且无论哪种方式,输出都是逐字节相同的。汇集 GPU 的网络从少数人中招募。卢马布里从所有人中招募。在有模型的机器上(任何 colibri 模型目录): ./lumabriserve --model /path/to/model 在想要聊天的机器上(它需要为引擎构建 colibri): ./lumabri chat --tracker < server-ip > :7300 --engines-dir /path/to/colibri/c 就这样。当工作集跨越网络时,第一个答案会更慢。之后,即使服务器离线,~/.lumabri 中的镜像也会继续提供服务。手头没有型号? make Fixture 构建了一个小型的合成夹具,因此上面的每一步都是真实的,只是很小。没有争论。它询问群地址,并且一次询问操作员公钥,找到引擎本身,并将所有内容记住在 ~/.lumabri/config 中。第二次是 Enter,Enter,然后您就进入了。当您给出标志时,它们仍然会获胜,因此脚本永远不会继承某人保存的答案。在聊天中,/swarm 显示实时和匿名的网络(对等点进行编号,从不命名),/model 列出 swarm 上的模型并在它们之间动态切换。共享字节。 serve 运行两个小程序:一个跟踪器,它只是谁持有哪些文件的索引,以及一个维护器,它回答模型目录上的字节范围读取。一个维护者可以持有一个模型的一部分,多个维护者可以共享一个模型。读取字节。 chat 通过 liblumabri.so 挂载模型,liblumabri.so 是一个 LD_PRELOAD 填充程序,它插入引擎在模型目录上进行的少量 libc 调用( open 、 fopen 、 opendir 、 pread )。文件显示为真实大小的稀疏本地镜像,因此 fstat 、 readdir 和页面缓存可以本机工作。从对等方获取丢失的块,将其写入镜像,然后引擎自己的预读取继续进行。热读是表查找加上普通的本地读:没有 FUSE,读路径上没有守护进程。每个经过验证的 MiB 也由 sha256 存储在本地内容寻址存储中。默认的 CLI 路径 ~/.lumabri/cas 被每个检查点共享,因此相同的块被下载一次,并且可以在没有字节服务器的情况下重建不同的稀疏镜像。继承自 colibri 的一条规则:网络可能会改变字节的来源,但永远不会改变字节。写入模型文件会返回 EROFS 。没有对等点可以服务的块是响亮的 EIO ,而不是无声的零。字节身份经过冷验证、热验证以及每个对等点死亡的验证。专家在同行中竞争。对于混合专家模型,chatter 仅保留密集权重、路由器和 KV 缓存,并将 4 KB 激活发送到保存每个路由专家的对等体。专家级的重量永远不会达到颤抖的程度。双方都是从引擎自己的源代码构建的,因此本地运行和分布式运行是一个代码路径,并产生相同的令牌。对等点还会公布其确切的构建(引擎、源哈希、ISA、编译器、量化、模型根),而聊天者会在发送单个激活之前拒绝构建不同的对等点,因为 -march=native 重建可以更改最后一位,而这种情况绝不能悄无声息地发生。同行不被信任。每个维护者都会计算其所持有内容的每个 MiB 的 sha256,并将其与注册一起发送。源端可以使用它保持离线的 ed25519 密钥签署该事实;跟踪器只携带签名而不能铸造签名,因此聊天者会根据它自己拥有的密钥来验证每个块。说谎的对等点的字节被拒绝并在其他地方重新获取。检查远程计算的唯一方式是:LUMABRI_VERIFY=N 在第二个副本上重新运行 N% 的专家调用,并要求相同的输出。两个诚实的同伴不能意见不一致,因此分歧就是谎言的证据,跑步就会停止。预填充和目标验证已作为多行到达 MoE。 lumabri 保持该联合完整,并为每个选定的专家发送一个多行 EXEC,包括推测草案验证;它永远不会将批次序列化为行大小的请求。当最近的副本在 N 毫秒后尚未回复时,LUMABRI_HEDGE_MS=N 可选择将副本发送到下一个副本,并使用第一个有效的确定性结果。固定延迟是特意采用的公共机制,而不是自动的 SLA 策略。 colibri 提供了多个引擎,并且它们不共享形状,因此专家端是每个引擎:一个挂钩 MoE 功能的小补丁,以及从该引擎自己的源代码构建的专家节点二进制文件。引擎从未被触及,补丁被应用到副本,并从源代码重新生成
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱