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.2GHz
  • RAM: 32GB
  • 네트워크: 400Mbps 업/다운
  • 저장소: 1TB NVMe SSD

마이너 (권장)

  • CPU: 8코어 @ 3.6GHz+
  • RAM: 64GB+
  • 네트워크: 1Gbps 업/다운
  • 저장소: 2TB NVMe SSD

검증자 (최소)

  • CPU: 8코어 @ 3.2GHz
  • RAM: 16GB
  • 네트워크: 400Mbps 업/다운
  • 저장소: 1TB SSD

검증자 (권장)

  • CPU: 8코어 @ 3.4GHz+
  • RAM: 32GB
  • 네트워크: 1Gbps+
  • 저장소: 2TB SSD

일반적으로 더 높은 사양은 더 나은 증명 생성 속도로 이어져 더 높은 보상을 받을 수 있습니다.


자세히 알아보기


Subnet 2는 Dani Labs (https://danilabs.ai/)로 리브랜딩되었지만, 코드와 배포 지침은 현재 Bittensor 서브넷에서 여전히 유효합니다.

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • Dispatch