inference-labs-inc/subnet-2
Verifiable inference on Bittensor
Subnet 2 (τ, β) – Bittensor の推論証明
概要 – Subnet 2 は、Bittensor 分散型 AI ネットワークに 推論証明 レイヤーを追加する Rust ベースの実装です。マイナーは、ゼロ知識(zk-ML)回路にコンパイルされた AI モデルを実行し、予測を生成し、出力が実際にそのモデルから得られたことを示す簡潔な zk 証明を生成できます。バリデータはデータを受信し、証明を検証し、証明サイズ、レイテンシ、その他のメトリクスに基づいてマイナーをスコアリングします。報酬は、単なる生の出力ではなく、証明の品質に結び付けられています。
主な機能
- ゼロ知識検証 – AI モデルの予測は、暗号化された「フィンガープリント」(zk-ML 回路)に変換されます。バリデータは、モデル自体を見ることなく予測のソースを確認できます。
- ネイティブ Rust バイナリ – パフォーマンスと安全性のために Rust で構築された、独立した
sn2-minerとsn2-validator実行ファイル。 - デュアルトランスポート – HTTP(axum 経由)と QUIC(btlightning を使用)での通信により、低遅延のピアツーピアメッセージングを実現。
- 自動更新バイナリ – リリースされたバイナリは 5 分ごとに GitHub をポーリングし、アトミックに自身を置き換えます。PM2 プロセスマネージャーと連携します。
- Docker ファースト展開 – 公式 Docker イメージ(
ghcr.io/inference-labs-inc/subnet-2)に、既製の compose ファイルと自動イメージ更新用の Watchtower サイドカーが付属。 - 報酬メカニズム – 証明サイズ、生成時間、暗号化の整合性に基づいてマイナーをスコアリングし、効率的な zk-ML 回路設計を促進します。
- Bittensor との統合 – ウォレット処理に
btcliを使用し、subxt を介した Substrate RPC、Opentensor サブネット標準に準拠。
クイックスタートガイド
前提条件
| ツール | 必要な理由 |
|---|---|
| Rust (rustup) | プリビルドバイナリを使用しない場合にソースからビルド |
| PM2 | バイナリを継続的に実行するためのプロセスマネージャー |
| btcli | ウォレット作成とサブネット登録のための Bittensor CLI |
| Docker (オプション) | Rust をインストールせずにマイナー/バリデータを実行 |
バイナリのインストール(ワンライナー)
curl -fsSL https://raw.githubusercontent.com/inference-labs-inc/subnet-2/main/install.sh | bash
スクリプトの後に sn2-miner または sn2-validator を追加すると、そのコンポーネントのみをインストールできます。
ネットワークへの登録
btcli subnet register \
--subtensor.network finney \
--netuid 2 \
--wallet.name YOUR_COLDKEY \
--wallet.hotkey YOUR_HOTKEY
マイナーの実行(Docker compose – 推奨)
services:
subnet-2-miner:
image: ghcr.io/inference-labs-inc/subnet-2:latest
restart: unless-stopped
ports: ["8091:8091"]
volumes:
- /path/to/.bittensor:/home/subnet2/.bittensor
environment:
- PUID=1000
- HOME=/home/subnet2
command: >
sn2-miner \
--wallet-name YOUR_MINER_KEY \
--wallet-hotkey YOUR_MINER_HOTKEY \
--netuid 2
イメージを自動更新するには、Watchtower コンテナを追加します(README に記載)。
バリデータの実行(Docker compose)
services:
subnet-2-validator:
image: ghcr.io/inference-labs-inc/subnet-2:latest
restart: unless-stopped
ports: ["8443:8443", "9090:9090"]
volumes:
- /path/to/.bittensor:/home/subnet2/.bittensor
environment:
- PUID=1000
- HOME=/home/subnet2
command: >
sn2-validator \
--wallet-name YOUR_VALIDATOR_KEY \
--wallet-hotkey YOUR_VALIDATOR_HOTKEY \
--netuid 2
バイナリを直接 PM2 で実行するか、README に記載されているように make pm2-miner / make pm2-validator を使用して実行することもできます。
アーキテクチャ概要
このリポジトリは Rust ワークスペース であり、複数のクレートで構成されています:
| クレート | 役割 |
|---|---|
sn2-types |
マイナーとバリデータの両方で使用される共有定数、データ構造、プロトコル定義 |
sn2-chain |
ウォレット操作、メタグラフクエリ、サブネット登録、ウェイト更新、自動更新ロジックを処理 |
sn2-verify |
Expander バックエンド(別リポジトリ)を使用した zk 証明検証を実装 |
sn2-validator |
バリデータバイナリ – 入力を受け取り、チャレンジを発行し、zk 証明をチェックし、マイナーをスコアリング |
sn2-miner |
マイナーバイナリ – チャレンジを取得し、ローカルに保存された zk-ML モデルを実行し、予測と証明を返す |
通信層:
- HTTP は axum を介して、シンプルな REST スタイルのリクエストに使用。
- QUIC は btlightning を介して、より高速でコネクションレスなメッセージングに使用。
- Substrate RPC は subxt を介して、オンチェーン操作(ウェイト、報酬、登録)に使用。
ハードウェア推奨事項
マイナー(最小)
- CPU: 8 コア @ 3.2 GHz
- RAM: 32 GB
- ネットワーク: 400 Mbps 上り/下り
- ストレージ: 1 TB NVMe SSD
マイナー(推奨)
- CPU: 8 コア @ 3.6 GHz+
- RAM: 64 GB+
- ネットワーク: 1 Gbps 上り/下り
- ストレージ: 2 TB NVMe SSD
バリデータ(最小)
- CPU: 8 コア @ 3.2 GHz
- RAM: 16 GB
- ネットワーク: 400 Mbps 上り/下り
- ストレージ: 1 TB SSD
バリデータ(推奨)
- CPU: 8 コア @ 3.4 GHz+
- RAM: 32 GB
- ネットワーク: 1 Gbps+
- ストレージ: 2 TB SSD
一般的に、より高いスペックは証明生成速度の向上につながり、報酬も高くなります。
詳細情報
- ドキュメント: https://sn2-docs.inferencelabs.com/
- ライブ統計: https://sn2-stats.inferencelabs.com/
- ダッシュボード (WandB): https://wandb.ai/inferencelabs/subnet-2
- Discord コミュニティ: https://discord.gg/bittensor
- Twitter/X: https://x.com/inference_labs
Subnet 2 は Dani Labs (https://danilabs.ai/) にリブランドされましたが、コードとデプロイ手順は現在の Bittensor サブネットでも有効です。
関連
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト
- Dispatch