March 12, 2025

Гайд по установке Gensyn ноды без GPU.

RL Swarm - это фреймворк с открытым исходным кодом, разработанный компанией GensynAI, вычисления для моделей глубокого обучения.

Ничего не понятно, но очень интересно)

https://github.com/gensyn-ai/rl-swarm?tab=readme-ov-file - оф github команды

https://cryptorank.io/ico/gensyn - сборы $ 50.6M

Требования:

Нужен сервер с минимум 16 ram.

Установка:

Обновляемся:

sudo apt-get update && sudo apt-get upgrade -y

Устанавливаем общие утилиты и инструменты:

sudo apt install curl iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli libgbm1 pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev  -y

Устанавливаем Python, если не было:

sudo apt-get install python3 python3-pip

Клонируем репозиторий с Github:

git clone https://github.com/gensyn-ai/rl-swarm/
cd rl-swarm

Создаём docker-compose.yaml.

В этом файле определяются службы: RL Swarm node, сборщик телеметрии и веб-интерфейс.

Переименовываем и перезаписываем старый файл:

mv docker-compose.yaml docker-compose.yaml.old

Создайте новый файл:

nano docker-compose.yaml

Вставьте следующую конфигурацию:

Ps По умолчанию порт 8080, он может быть у вас уже занят. Меняйте при желании в соответствующей строке ports.

version: '3'

services:
  otel-collector:
    image: otel/opentelemetry-collector-contrib:0.120.0
    ports:
      - "4317:4317"  # OTLP gRPC
      - "4318:4318"  # OTLP HTTP
      - "55679:55679"  # Prometheus metrics (optional)
    environment:
      - OTEL_LOG_LEVEL=DEBUG

  swarm_node:
    image: europe-docker.pkg.dev/gensyn-public-b7d9/public/rl-swarm:v0.0.1
    command: ./run_hivemind_PU is available
    environment:
      - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
      - PEER_MULTI_ADDRS=/ip4/38.101.215.13/tcp/30002/p2p/QmQ2gEXoPJg6iMBSUFWGzAabS2VhnzuS782Y637hGjfsRJ
      - HOST_MULTI_ADDRS=/ip4/0.0.0.0/tcp/38331
    ports:
      - "38331:38331"  # Exposes the swarm node's P2P port
    depends_on:
      - otel-collector

  fastapi:
    build:
      context: .
      dockerfile: Dockerfile.webserver
    environment:
      - OTEL_SERVICE_NAME=rlswarm-fastapi
      - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
      - INITIAL_PEERS=/ip4/38.101.215.13/tcp/30002/p2p/QmQ2gEXoPJg6iMBSUFWGzAabS2VhnzuS782Y637hGjfsRJ
    ports:
      - "8080:8000"  # Maps port 8080 on the host to 8000 in the container
    depends_on:
      - otel-collector
      - swarm_node
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/api/healthz"]
      interval: 30s
      retries: 3

Запускаем:

docker compose up --build -d 

Логи:

Команда чтобы проверить логи ноды:

docker-compose logs -f swarm_node

Команда чтобы проверить логи веб интерфейса:

docker-compose logs -f fastapi

Команда чтобы проверить логи сборщика телеметрии:

docker-compose logs -f otel-collector

Дашборд

Чтобы подключиться, в браузере вводим:

http://<ip твоего сервера>:8080

Ps Если меняли порт на другой, то соответственно:

http://<ip твоего сервера>:<ваш порт>

Node id

Выглядеть node id будет в таком формате:

[F-7878f291-edg6-4747-947a-a61e01a38bfd]

Чтобы достать node id вводим:

docker-compose logs -f swarm_node
Пример node id выделен розовым цветом

Обязательно сохраняем.

Выходим из логов:

Ctrl+C