Skip to main content
  1. Projects/

Can a Language Model Improve Its Own Mathematical Reasoning? (Weak RSI)

Pranav
Author
Pranav
Coding with Physics, Physics-ing with code
OngoingQwen3-4BMATH-100Unsloth QLoRALocal web research
TL;DRPromotheus tests whether a frozen local language model can propose useful training mutations, learn from their results, and improve at hard mathematics.

Overview
#

Promotheus is a weak recursive self-improvement experiment. Qwen3-4B proposes a change, researches it, trains a separate LoRA adapter, and measures the result. A stronger adapter becomes the parent for the next round.

The base model stays frozen. The loop changes adapters, data, and training recipes under a fixed controller and a locked benchmark.

The loop
#

flowchart TD
    A[Qwen3-4B plus current parent] --> B[Propose mutation and research]
    B --> C[SearchXNG and Chrome CDP]
    C --> D[Create data or training branch]
    D --> E[Train Unsloth QLoRA adapter]
    E --> F[Screen and evaluate]
    F --> G[Locked MATH-100]
    G --> H{Promote?}
    H -->|Yes| I[New parent]
    H -->|No| J[Keep failure evidence]
    I --> B
    J --> B

What exists
#

  • A locked MATH-100 benchmark: 100 Level-5 problems from the locked MATH-500 pool, with a recorded manifest and digest.
  • A disjoint 300-problem DEV set and a 64-problem screen set.
  • Verified train and mutation data, separate LoRA branches, lineage records, evaluation JSON, and model/web-research logs.
  • An Unsloth QLoRA path for Qwen/Qwen3-4B; the base remains frozen.
  • A localhost dashboard showing benchmark history, mutation branches, lineage, live logs, CPU, and GPU telemetry.
Live Promotheus dashboard during the MATH-100 mutation run.

Results
#

The frozen Hugging Face Qwen3-4B baseline scored 47/100 on MATH-100 under the corrected math-verify-v1 grader. The original run was recorded as 38/100 by an older parser; the saved evaluations were regraded without new model inference.

Candidate MATH-100 Outcome
Frozen Qwen3-4B 47/100 Reference parent
gen08-easy-data-mutation 49/100 Current promoted parent
gen21-hard-data-mutation 45/100 Rejected
gen22-hard-data-mutation-2 34/64 screen DEV timed out before MATH-100

The current corrected comparison is 47/100 to 49/100, a gain of two percentage points. The later hard-data branches did not beat that parent: Gen21 scored 45/100, while Gen22 reached 34/64 on the screen but did not complete DEV and never reached the locked MATH-100 evaluation. These results are not evidence of a general ability jump.

How the winning mutation was found
#

Qwen received DEV-only outcomes, failed examples, and a catalog of executable training levers. It searched GitHub, arXiv, Hugging Face, and general web sources for evidence about LoRA rank and math fine-tuning. The evidence was indirect, so it proposed a controlled test: set lora_r to 8 while leaving the data and solution instruction unchanged.

The controller trained and screened that branch, then tested it on MATH-100. The result was 49/100 under the corrected grader. The logs record the searches, reasoning, mutation specification, adapter, data hash, failed examples, and evaluation, so the model’s work can be inspected rather than inferred from a score alone.

Why this is weak RSI
#

The model proposes and evaluates changes to its own training state, but the human-defined controller still fixes the base model, benchmark, action space, verification rules, and promotion gate. This is a bounded RSI loop implemented as autoresearch over QLoRA adapters, not autonomous self-rewriting.

Current status
#

The current promoted parent is gen08-easy-data-mutation at 49/100. A subsequent three-hour campaign attempted Gen21 and Gen22, but neither replaced it. Gen21 completed at 45/100; Gen22 completed screening at 34/64 but timed out during its 300-problem DEV evaluation. The controller is currently inactive, and all prior adapters, logs, and evaluation files are preserved.

The most recent campaign ran for approximately 3 hours, from 2026-07-25 20:49 to 23:49 UTC.

Tools
#

Python, PyTorch, Transformers, Datasets, Accelerate, PEFT, TRL, Unsloth, SymPy, math-verify, Qwen3-4B, Ollama, SearchXNG, Chrome CDP, and a local resource-monitoring dashboard.

Related