April 25, 2025

**gensyn** (upd.28\08\25)

Hardware Requirements

  • CPU: Minimum 16GB RAM (more RAM recommended for larger models or datasets).

OR

  • GPU (Optional): Supported CUDA devices for enhanced performance:I recommend GPUs with >=24GB vRAM.
    • RTX 3090
    • RTX 4090
    • A100
    • H100
  • Note: You can run the node without a GPU using CPU-only mode.

1) Install Dependencies

1. Update System Packages

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

2. Install General Utilities and Tools

sudo apt install screen 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

3. Install Python

sudo apt-get install python3 python3-pip python3-venv python3-dev -y

4. Install Node

sudo apt-get update
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
sudo npm install -g yarn
yarn -v

5. Install Yarn

curl -o- -L https://yarnpkg.com/install.sh | bash
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
source ~/.bashrc

2) Clone the Repository

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

Start on GPU - step 3

Start on CPU - step 4

3) Run the swarm (GPU)

Open a screen to run it in background

screen -S swarm

Install swarm

python3 -m venv .venv
source .venv/bin/activate
./run_rl_swarm.sh

4) Run the swarm (CPU)

Download script (you need ready-made ones "userApiKey.json" and "userData.json", which you can generate in "run_rl_swarm.sh", just comment out line #73)

wget https://raw.githubusercontent.com/xB0unty911/working/refs/heads/main/run_rl_swarm_cpu.sh
chmod +x run_rl_swarm_cpu.sh

Open a screen to run it in background

screen -S swarm

Install swarm

python3 -m venv .venv
source .venv/bin/activate
./run_rl_swarm_cpu.sh


Upd. Конфиг для 4070 ti super

datasets.yaml

# Composite Dataset Configuration for Reasoning Gym
# This file defines multiple datasets with their weights and configurations

size: 2000  # Total virtual size of the composite dataset
seed: 42    # Seed for reproducibility

datasets:
  - name: arc_1d
    weight: 1.5  # Увеличенный вес для большего влияния на обучение
    config:
      min_size: 8   # Уменьшено для более разнообразных простых задач
      max_size: 50  # Увеличено для сложных случаев (использует больше VRAM)
      num_train: 5  # Больше примеров для обучения (+2 к исходным)
      seed: 42      # Сохранение воспроизводимости
      size: 1000    # Увеличенный размер датасета (2x)

  # Basic arithmetic operations
  - name: basic_arithmetic
    weight: 1.2  # Увеличенный вес для более интенсивного использования
    config:
      min_terms: 3          # Увеличено для усложнения задач (было 2)
      max_terms: 8          # Увеличено для максимизации использования VRAM (было 6)
      min_digits: 1         # Оставлено для простых примеров
      max_digits: 6         # Увеличено для работы с большими числами (было 4)
      operators: ["+", "-", "*", "/"]  # Добавлено возведение в степень (**)
      allow_parentheses: true
      allow_negation: true
      format_style: "natural"  # Можно изменить на "algebraic" для более строгого формата
      whitespace: "single"
      seed: 1234
      size: 1000            # Увеличено в 2x (было 500)
  
  # Base Conversion
  - name: base_conversion
    weight: 1
    config:
      min_base: 2
      max_base: 16
      min_value: 0
      max_value: 4096  # Увеличение для более сложных задач (использует больше VRAM, но 4070 Ti Super справится)
      seed: 1239
      size: 1000  # Увеличение размера датасета для лучшего обучения (если VRAM позволяет)

  # BrainF***
  - name: bf
    weight: 1
    config: 
      difficulty: 2               # Увеличил сложность (1–3: 1 — простые программы, 3 — сложные)
      seed: 1238
      size: 750                   # Увеличил размер датасета (использует 12 ГБ VRAM 4070 Ti Super)

  # Binary Matrix
  - name: binary_matrix
    weight: 1.2  # Увеличенный вес для более интенсивного использования
    config:
      min_n: 5           # Увеличено минимальное значение (было 3)
      max_n: 16          # Увеличено максимальное значение (было 10)
      p_zero: 0.3        # Изменена вероятность нулей (было 0.25)
      seed: 1236
      size: 1000         # Увеличен размер датасета (было 500)
      
  # Calendar arithmetic for date calculations
  - name: calendar_arithmetic
    weight: 1
    config:
      year: 2023
      offset_upper_bound: 365  # Увеличить для более сложных задач
      leap_year_range: 400     # Расширить диапазон проверки високосных лет
      tasks: ["count_days", "weekday_of_date", "is_leap_year", "recurring_event_day"]
      seed: 1237
      size: 1000               # Увеличить объём данных для загрузки GPU (size: 500)

  # Decimal arithmetic for more complex calculations
  - name: decimal_arithmetic
    weight: 1.3  # Увеличенный вес для более интенсивного использования GPU (weight: 1)
    config:
      min_terms: 3          # Увеличено минимальное количество терминов (min_terms: 2)
      max_terms: 8          # Увеличено максимальное количество терминов (max_terms: 6)
      min_num_decimal_places: 1
      max_num_decimal_places: 4  # Увеличено максимальное количество знаков после запятой (max_num_decimal_places: 3)
      precision: 7          # Увеличена точность вычислений
      seed: 1235
      size: 750            # Увеличен размер датасета (было 500)
      
  # Fraction simplification problems
  - name: fraction_simplification
    weight: 1.2  # Увеличенный вес для более интенсивного использования
    config:
      min_value: 1
      max_value: 1000  # Увеличено максимальное значение (было 100)
      min_factor: 2
      max_factor: 50   # Уменьшено для более сложных задач упрощения
      styles: ["plain", "latex_frac", "latex_dfrac"]
      seed: 1236
      size: 1000       # Увеличен размер датасета (было 500)
      
  # Logic puzzles
  - name: propositional_logic
    weight: 1
    config:
      min_vars: 3          # Увеличиваем минимальное число переменных для усложнения
      max_vars: 5          # Увеличиваем максимальное число переменных (но не слишком, чтобы не перегружать память)
      min_statements: 3    # Больше выражений для более сложных задач
      max_statements: 5    # Но не слишком много, чтобы не усложнять парсинг
      min_complexity: 2    # Увеличиваем минимальную сложность (меньше тривиальных задач)
      max_complexity: 4    # Максимальная сложность (но не 5+, чтобы не перегружать GPU)
      seed: 1238
      size: 1000           # Увеличиваем размер датасета (GPU справится)

rg-swarm.yaml

training:
  max_round: 1000000
  max_stage: 1
  hf_push_frequency: 1
  num_generations: 4
  num_transplant_trees: 4
  seed: 42
  fp16: true # set this line to true if your hardware supports fp16
  batch_size: auto # или вручную подобрать (начни с 8-16)
  gradient_accumulation_steps: 2  # если большой batch не влезает