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
일반적으로 더 높은 사양은 더 나은 증명 생성 속도로 이어져 더 높은 보상을 받을 수 있습니다.
자세히 알아보기
- 문서: 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