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

一般的に、より高いスペックは証明生成速度の向上につながり、報酬も高くなります。


詳細情報


Subnet 2 は Dani Labs (https://danilabs.ai/) にリブランドされましたが、コードとデプロイ手順は現在の Bittensor サブネットでも有効です。

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • Dispatch