跳至正文
瞎折腾
返回

三台 Mac mini 挖 IOTA 一个月:排队比训练还累

这一个月我拿三台 Mac mini 跑 Train at Home,想看看在家贡献算力训练模型能换回多少币。Train at Home 是 Macrocosmos 出的 Mac 客户端,背后是 Bittensor 的 9 号子网 IOTA。大家一起训练一个模型,按贡献分 SN9 的 alpha 代币(符号 ι),ι 可以按市价折成 TAO。

上手

装好 App,在 Connect 里贴一个 coldkey 地址,点 Start training,不需要自己用 btcli 注册 hotkey。三台机器我分别叫 home、office 和 mini-2。

第一个坑来得很快。最早用 btcli 建的地址收到过一笔,App 里显示 $6.66。换成 taostats 钱包扩展新建的地址后,三台跑了一整晚,Pending 还是 0。查下来跟地址无关:有台机器显示在训练,Activations 和 Throughput 却都是 0;家里那台测完速就没了日志,办公室那台已经在接任务。测速 309 Mbps 下行、209 Mbps 上行,带宽背不了这个锅,更像是家里网络路径的问题。

9 月 10 日早上 8 点多,新地址到账第一笔,4.37 ι。

怎么盯

本来想用 VNC 远程看办公室那台的界面,连上去停在 macOS 登录页,作罢。后来换了个思路,让 Grok Bot 来盯。Grok Bot 跑在一台云端的 Linux 机器上,我把这台机器也加进了 Tailscale,它就能和三台 Mac mini 在同一个内网里,直接 SSH 进去读日志、跑脚本,不用开端口,也不用远程桌面。三台 Mac mini 两台在家(home 和 mini-2),一台在办公室(office),连同 Grok Bot 都用 Tailscale SSH 管理。

家里两台、办公室一台 Mac mini 和 Grok Bot 通过 Tailscale SSH 连在同一个内网

监控分了几层:

中间还问过一个蠢问题:为什么 App 里的 miner ID 在链上显示 Inactive。答案是这个 ID 由客户端本地生成,只用来跟 Macrocosmos 的调度服务认证,从来没在链上注册过,钱是从矿池的 hotkey 打过来的。

收入

9 月 10 日到 10 月 9 日,一共到账 26 笔,合计 108.44 ι,按到账时的价格约 2.78 TAO,约 775 美元。三台机器平均下来一天二十多美元,中间还有好几天一分没有。

最大一笔是 10 月 7 日的 23.0 ι,约 0.57 TAO、174.5 美元,其中 16.37 ι 来自 mini-2。它前一天在一个训练 run 里连续几个 epoch 排在 120 台机器的第 2 到第 6 名,那个 run 每份贡献给得也多。那天链上一共给 288 个地址发了钱,我排第 30。平时就没这么好看,10 月 5 日和 6 日分别排第 144 和第 156。

币价也没帮忙。α 对 TAO 从 9 月 10 日的 0.0276 跌到今天的 0.0246 左右,同期 TAO 对美元从 235 左右涨到 275 左右,折成美元才没那么难看。

10 月 8 日早上我还试着预测当天到账:按各机器每个 epoch 的贡献占比估,区间 2.5 到 7.5 ι,中值 5.0。实际到账 3.95 ι。落在区间里了,可区间宽成这样,预测主要图个心安。

这里只算了收入,电费和机器折旧都没算进去。

最近几天基本在排队

10 月 9 日之后画风变了。office 早上 9 点 25 分左右被踢出训练,当天只提交了 17 次。10 点 53 分它排到第 5 位,挂了二十来分钟,11 点 15 分被甩到第 922 位。9 日到 10 日,三台机器排到前排又被打回队尾的情况我记了 30 次,最离谱的一次是 mini-2 排到第 2 位,转头第 956 位。

进了训练也不一定能干活。mini-2 在 9 日傍晚进了 layer 2,卡在 initializing 将近 4 小时,日志里一直是 node_registry 的 500 错误,重启后进去也是空转,凌晨 3 点被踢回队列。office 晚上 10 点 12 分进了 layer 1,同层找不到 peer,五个多小时没交出一次结果。10 日早上 8 点那次发放,三台都是 0。到今天下午 5 点,它们还在排队,位置分别是第 828、第 326 和第 164。

客户端是 PyInstaller 打包的,运行文件解压在临时目录,而 macOS 会清理放了 3 天的临时文件。为了防止长时间运行的客户端被清掉文件,我还写了个 launchd 小脚本,每 6 小时 touch 一遍。

官方文档和社区讨论我也翻了,最被推荐的办法是申请 tiered run(Provider Compute Application),据说能避开拥挤的 permissionless run。剩下的都是常规操作,别让机器睡眠,别开 VPN,排到前面时别手贱重启。服务端那边报 Miner not registered 把人踢回去的情况,本地再稳也挡不住。

几点体会


分享本文:

下一篇
你好,世界