摘要
Bittensor 矿机不是一台用来哈希区块的 GPU 机器。它是一台运行注册到子网的矿工程序的机器,其中真正的工作是模型推理或训练,奖励来自你与其他矿工相比的排名。硬件选择取决于你瞄准哪个子网,而不是一份全球统一的规格表。
本文将矿机拆解为各个部分,解释 CPU、GPU、显存、存储和网络如何分别影响你的竞争力,并展示托管 RPC 端点适合放在哪里,以便你的矿机将资源花在计算上而不是链同步上。
大多数搜索“Bittensor 矿机”的人想象的是 ASIC 或多 GPU 的以太坊式矿机。这种思维模型在 Bittensor 上立刻失效。这里没有哈希谜题要解,也没有针对原始计算的区块奖励。Bittensor 上的矿工运行一个软件进程,产生有用的输出——推理响应、训练模型更新、预测——并在同一子网内与其他矿工一起被评分。你的矿机是该进程的服务器,重要的硬件是目标子网的评分函数所奖励的任何东西。
这种重新定义就是整篇文章的核心。如果你先买硬件再选子网,你就是在猜测。如果你先选子网,矿机规格基本上就随之确定了。
从这里开始:让矿机匹配子网,而不是反过来
在比较 CPU 或 GPU 之前,先回答三个问题。它们几乎决定了其他一切。
- 你在挖哪个子网? 子网定义自己的任务。有些是文本生成或嵌入服务,有些是预测或数据管道,有些是面向训练的。每个都有不同的瓶颈。
- 任务是推理密集型还是训练密集型? 推理矿工通常关心 GPU 内存带宽和显存容量。训练矿工关心持续 FLOPS、互连以及一轮需要多长时间。
- 你的分数如何计算? 如果子网奖励低延迟,你的网络和主机 CPU 与 GPU 一样重要。如果奖励模型质量,显存和精度支持占主导。
一个实用的决策方法:先以低成本配置运行矿工,观察它在哪里停滞,然后花钱在真正限制你分数的组件上。为一个受 CPU 或带宽限制的子网购买顶级 GPU 是浪费钱,而为显存需求大的模型购买廉价 GPU 意味着你永远无法完成一轮。
| 子网工作负载形态 | 主要瓶颈 | 优先组件 | 团队容易超支的地方 |
|---|---|---|---|
| 小模型推理 | 延迟和请求吞吐量 | CPU 单核速度、网络路径 | 过大的 GPU |
| 大模型推理 | 显存容量和内存带宽 | GPU 显存、PCIe 带宽 | 额外的 CPU 核心 |
| 训练/微调 | 持续 FLOPS 和轮次时间 | GPU 计算、散热、电源余量 | 快速本地存储 |
| 数据/预测管道 | I/O 和预处理 | 内存、NVMe、CPU 核心 | 多个 GPU |
| 多子网操作 | 隔离和调度 | 容器化、每进程限制 | 一台巨型机器 |
Bittensor 矿机的组成部分及其各自的作用
矿机主机并不奇特。它是一台带有 GPU、钱包和链连接的 Linux 服务器。将其分解为几层:
- 链客户端 / RPC 连接。 你的矿工通过链读取子网状态、注册并提交权重或承诺。这正是托管 RPC 端点可以消除大量运维阻力的地方。
- 钱包和热键。 你的矿工身份。注册成本和密钥安全在这里,而不是在 GPU 中。
- 矿工进程。 执行实际工作的子网特定代码。这是消耗 GPU 和 CPU 的部分。
- 主机操作系统和容器运行时。 大多数子网提供 Docker 或 Python 环境。可复现性比原始速度更重要。
- 存储。 模型权重、数据集和日志。每个模型的权重可能达到数十 GB。
- 网络。 包括链 RPC 路径和子网自己的对等或 API 流量。
如果你还在决定是否要自己运行链客户端,权衡已在什么是 Bittensor 节点以及如何选择正确的设置?中介绍。对于大多数矿工来说,链客户端是开销,而不是产品。
CPU、GPU、显存和存储:各层的配置指南
没有单一的官方矿机规格,因此将以下内容视为配置逻辑而非购物清单。
CPU。 你需要足够的核心来喂饱 GPU 并运行矿工的 Python 或 Rust 进程而不使其饥饿。单核性能对于评分延迟的子网很重要。对于单 GPU 矿工,现代 8-16 核桌面或服务器 CPU 是一个合理的起始范围;核心数随 GPU 数量扩展。
GPU。 这是主要变量。显存容量决定你能加载哪些模型。内存带宽决定你能以多快的速度服务它们。计算吞吐量决定训练轮次完成的速度。在了解子网期望的模型大小后再选择 GPU。
系统内存。 被低估了。模型加载、数据集预处理和容器开销都会消耗主机内存。如果你在一台主机上运行多个矿工,按进程而不是按机器预算内存。
存储。 对于模型权重和任何被反复读取的数据集,使用 NVMe。模型文件很大,从机械磁盘或网络存储加载很慢。将日志放在单独的卷上,这样磁盘满了不会杀死正在运行的矿工。
电源和散热。 单个高端 GPU 在持续负载下可能消耗数百瓦。持续推理与突发游戏是不同的热分布。计划持续功耗,而不是峰值。
网络。 两条不同的路径:链 RPC 连接和子网自己的流量。链路径带宽低但应可靠。如果你服务请求或交换模型更新,子网路径可能很重。
链连接适合放在哪里——以及为什么它不应该在你的矿机上运行
你的矿工需要链访问来注册、读取子网状态和提交结果。你可以在本地运行完整的 Bittensor 节点,但这会给一台以计算为任务的机器增加磁盘、同步时间和升级维护。托管 RPC 端点将链路径完全从你的矿机上移开。
OnFinality 为 Bittensor 提供 RPC API 和专用节点基础设施,因此矿工可以指向托管端点,而不是在本地同步 Finney。Bittensor Finney 的公共端点是:
curl -s https://bittensor-finney.api.onfinality.io/public \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"chain_getHeader","params":[]}'
还提供用于订阅的 WebSocket 端点:
// Minimal connectivity check against the Bittensor Finney WebSocket endpoint
const ws = new WebSocket('wss://bittensor-finney.api.onfinality.io/public-ws');
ws.onopen = () => {
ws.send(JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'chain_getBlockHash',
params: [0]
}));
};
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
console.log('genesis hash:', msg.result);
ws.close();
};
对于频繁提交或运行多个子网的生产矿工,专用节点提供具有可预测容量的私有连接。有关其结构,请参阅专用节点和RPC 定价,完整列表请参阅支持的 RPC 网络。
注册前的最小矿机主机检查清单
注册需要花费 TAO,如果你的矿工无法竞争,费用不退。先验证主机。
- GPU 驱动和 CUDA(或 ROCm)版本与子网矿工期望的匹配。
- 子网所需的模型或数据集适合显存,并为批量大小留有余量。
- 已安装容器运行时,子网镜像可以干净地拉取。
- 已创建、备份并充值钱包和热键以进行注册。
- 链 RPC 端点可达并能响应基本调用。
- 存储有空间容纳权重以及整个轮次中日志的增长。
- 电源和散热能维持持续负载,而不仅仅是基准测试的突发。
- 有回滚计划:在更改任何内容之前快照工作配置。
看起来像硬件问题但实际上不是的故障模式
许多“我的矿机太慢”的报告实际上是配置或连接问题。
| 症状 | 可能原因 | 首先检查什么 |
|---|---|---|
| 矿工启动后从子网掉线 | RPC 连接不稳定或受速率限制 | 链端点健康状况和请求量 |
| 矿工运行时 GPU 空闲 | 进程未使用 GPU,或设备索引错误 | 轮次期间运行 nvidia-smi |
| 轮次永远无法完成 | 模型对显存来说太大,交换到主机内存 | 显存使用和批量大小 |
| 子网更新后分数下降 | 矿工版本落后于子网期望的接口 | 子网仓库发布说明 |
| 负载下随机重启 | 电源或热限制 | 持续功耗和温度 |
| 注册成功但没有奖励 | 评分不匹配,不是硬件问题 | 子网评分规则和你的输出格式 |
如果链路径是问题所在,从本地节点迁移到托管端点通常是最快的修复方法。如果 GPU 确实是限制,那是硬件决策,不是配置决策。
成本模型:你实际支付的是什么
Bittensor 矿机有三个成本层,它们的扩展方式不同。
- 硬件(资本支出)。 GPU、CPU、内存、存储、电源。这是最大的前期数字,也是人们过度关注的一个。
- 电源和散热(运营支出)。 持续功耗,不是峰值。这是边际 GPU 选择可能悄悄变得昂贵的地方。
- 链访问和注册(运营支出)。 RPC 容量加上每个子网的 TAO 注册成本。注册是按子网和按热键的,因此运行多个子网会成倍增加。
一个有用的练习:估算每轮奖励,乘以预期轮数,然后与电力加链访问进行比较。如果利润取决于在同一台机器上运行链客户端以节省几美元,那么矿机对于该子网来说可能太小了。
第一天之后操作矿机
注册是容易的部分。保持矿工竞争力是一项运营工作。
- 固定版本。 子网代码会变化。固定矿工镜像并有意识地升级,而不是自动升级。
- 监控 GPU,而不仅仅是进程。 正在运行的进程可能没有做任何有用的事情。跟踪利用率、显存和温度。
- 单独观察链路径。 RPC 延迟和错误率是与 GPU 健康不同的信号。对两者都设置警报。
- 保持日志有界。 长时间运行的矿工会产生大量输出。在日志填满磁盘之前轮转它们。
- 分离身份。 每个子网一个热键可以隔离故障,并使评分更容易推理。
如果你运行多个子网,每个矿工的容器隔离值得设置成本。它可以防止一个子网的依赖冲突拖垮主机的其余部分。
关键要点
- Bittensor 矿机是子网矿工进程的服务器,不是哈希机器。没有通用规格。
- 先选子网;CPU、GPU、显存和存储要求由其评分函数决定。
- 显存容量决定你能运行哪些模型;内存带宽和计算决定你的竞争力。
- 链连接是矿机主机的开销。托管 RPC 端点或专用节点将其从你的矿机上移开。
- 在支付注册费用之前,根据检查清单验证主机。
- 大多数“矿机慢”的问题都是配置、版本漂移或 RPC 不稳定,而不是原始硬件限制。
常见问题
在 Bittensor 上挖矿需要 GPU 吗? 这取决于子网。推理和训练子网通常需要 GPU,而一些数据或预测子网更受 CPU 和 I/O 限制。在购买硬件之前,检查特定子网的矿工要求。
我需要多少显存? 没有单一数字。根据目标子网期望的最大模型来配置显存,加上批量大小和框架开销的余量。从子网的参考矿工开始,测量实际使用量。
我可以在云 GPU 实例上运行矿工而不是购买矿机吗? 可以,这是在承诺硬件之前测试子网的合理方式。权衡是每小时成本与所有权,以及实例类型是否提供子网所需的显存和持续性能。
我应该在与矿工相同的机器上运行完整的 Bittensor 节点吗? 可以,但它会与矿工进程竞争磁盘、内存和 CPU。大多数矿工更适合使用托管 RPC 端点,并让主机专注于计算。
为什么我的矿机硬件没问题却失去分数? 通常是版本漂移、输出格式不匹配或链连接不稳定。在更换硬件之前,确认你运行的是子网当前的矿工版本,并且你的 RPC 端点响应可靠。
OnFinality 支持 Bittensor 吗? 是的。OnFinality 为 Bittensor Finney 提供 RPC API 和专用节点基础设施,支持 HTTP 和 WebSocket 传输。有关端点详情,请参阅 Bittensor 网络页面。