运行一个专家 worker
把闲置的 GPU、CPU 或手机变成专家 worker:构建它、为最稀缺的切片报名、下载它、服务,并通过 443 向外拨号赚取 KVR。
一个专家 worker 是纯 (hidden, ids) → out 函数——没有注意力、没有 KV 缓存、没有采样器——在骨干的路由器选中它们时计算 MoE 模型专家的一个切片。你不选择服务什么;覆盖市场把裁剪到你预算内的、最稀缺、最高奖励的范围交给你,因此一台 4 GB 手机和一张数据中心 GPU 都能找到位置。
引擎状态。专家粒度分片是在 Kvasir 上一代引擎上构建并演示的,下面的结果来自那项工作。当前引擎 [p4](/wiki/p4) 今天以层为粒度提供服务;把专家分片迁移到它上面已完成设计、正在推进。凡是点到具体工具或路由的细节,都是当时在上一代引擎上运行的那一套。
七个步骤
构建 → 报名 → 服务 → 拨号 → 赚取
整条路径——拨号脚本用重试循环等待骨干。
# 1. build the worker for your backend (cuda | rocm | cpu)
bash scripts/build-node-runtime.sh <backend> # -> linkcpp-expert-worker
# 2. volunteer — the market assigns the scarcest range within your budget
POST /api/expert-volunteer {model, max_experts} -> {layer, experts:[a,b]}
# 3. download only that slice (node-token auth)
GET /api/proxy/models/<model>/expert-shard?layers=L:L+1&experts=a:b # a mini-GGUF
# 4. serve it
linkcpp-expert-worker --model <slice.gguf> --serve <port> --layer L --n-embd <E>
# 5. dial out over 443 (no inbound ports)
scripts/expert-relay-dial.py --mode worker \
--hub wss://gate.kvasir-ai.net/api/expert-relay --session <S> --local 127.0.0.1:<port>
# 6. heartbeat so the demand map and rewards can see you
POST /api/expert-coverage- 切片很小。 layer-0 的 128 专家切片对比 72 GB 的完整模型只有 794 MB——正是让弱设备也能参与的粒度。你只下载市场分配给你的范围。
- 只拨出,绝不拨入。 第 5 步在 443 上打开一条出站 WebSocket,因此运营商 NAT 和 CDN 边缘都放行,而你不暴露任何入站端口——与手机所用的路径相同。
- 心跳是承重的。 没有
POST /api/expert-coverage,你所服务的一切对需求图都不可见,你所做的一切也都不会入账。 - 奖励按工作计。 桥接的工作累积到 bridge 的贡献账本;网关把 KVR 增量记入你自己的钱包。你需要一个钱包地址才能收款。
worker 与数据中心内的 GPU 说同一套调度协议——通过一条长连接流交换 (n_used, n_tokens, cur, sel) → experts。部分分片 worker 只是把 n_used = 1。正是这种一致性,让手机、CPU 主机和 Blackwell 卡成为同一蜂群中可互换的成员。