[ICLR 2026] RuleReasoner: Reinforced Rule-based Reasoning via Domain-aware Dynamic Sampling
42
stars
21
commits
Python
primary language
Feb 25, 2026
updated
Reinforced Rule-based Reasoning (RuleReasoner) is a simple yet effective method enabling small reasoning models (SRMs) to effectively learn rule-based reasoning. Unlike large models that need complex training, RuleReasoner uses a curated collection of tasks and a domain-aware dynamic sampling approach, adjusting training based on historical performance. This simple yet effective technique allows SRMs to outperform frontier Large Reasoning Models (LRMs) by +4.1% on in-distribution tasks and +10.4% on out-of-distribution tasks, while also being more computationally efficient.
Domain-aware dynamic sampling with higher training sampling efficiency and domain performance balance.
Comprehensive Data curation for data curricula on rule-centric application.
Rule Reasoner (8B and 4B) depicts comparable performance versus a wide range of baselines.
Rule Reasoner (8B and 4B) also achives strong OOD performance across three benchmarks (subsets of rule-based reasoning) including BBH, ProverQA, and BBEH.
Running RuleReasoner requires the dependencies listed in requirements.txt.
Build RuleReasoner from the source and install dependencies:
Clone the repository:
git clone https://github.com/bigai-nlco/RuleReasoner.git
Navigate to the project directory:
cd RuleReasoner
Install the dependencies:
pip install -r requirements.txt
pip install -e ./verl
pip install -e .
Run the training with:
./scripts/train/train_mix.sh
Run the evaluation with:
./scripts/eval/eval_model.sh \
--model $MODEL_PATH \
--datasets $DATASET_PATH \
--output-dir $OUTPUT_DIR
└── RuleReasoner
├── LICENSE
├── README.md
├── requirements.txt
├── scripts
│ ├── build_dataset.py
│ ├── data
│ ├── eval
│ └── train
├── setup.py
├── src
│ ├── __init__.py
│ ├── data
│ ├── globals.py
│ ├── system_prompts.py
│ └── utils.py
└── verl
└── ...
RuleReasoner project in the issues section.git clone https://github.com/<YOUR-USERNAME>/RuleReasoner.git
git checkout -b new-feature-x
git commit -m 'Implemented new feature x.'
git push origin new-feature-x
Rulereasoner is distributed under the terms of the MIT License.
@inproceedings{
liu2026rulereasoner,
title={RuleReasoner: Reinforced Rule-based Reasoning via Domain-aware Dynamic Sampling},
author={Yang Liu and Jiaqi Li and Zilong Zheng},
booktitle={The Fourteenth International Conference on Learning Representations},
year={2026},
url={https://openreview.net/forum?id=MQV4TJyqnb}
}
19 commits
2 commits
Python
91.1%
Shell
7.4%
Jupyter Notebook
1.5%
[ICLR 2026] RuleReasoner: Reinforced Rule-based Reasoning via Domain-aware Dynamic Sampling
42
stars
21
commits
Python
primary language
Feb 25, 2026
updated
Reinforced Rule-based Reasoning (RuleReasoner) is a simple yet effective method enabling small reasoning models (SRMs) to effectively learn rule-based reasoning. Unlike large models that need complex training, RuleReasoner uses a curated collection of tasks and a domain-aware dynamic sampling approach, adjusting training based on historical performance. This simple yet effective technique allows SRMs to outperform frontier Large Reasoning Models (LRMs) by +4.1% on in-distribution tasks and +10.4% on out-of-distribution tasks, while also being more computationally efficient.
Domain-aware dynamic sampling with higher training sampling efficiency and domain performance balance.
Comprehensive Data curation for data curricula on rule-centric application.
Rule Reasoner (8B and 4B) depicts comparable performance versus a wide range of baselines.
Rule Reasoner (8B and 4B) also achives strong OOD performance across three benchmarks (subsets of rule-based reasoning) including BBH, ProverQA, and BBEH.
Running RuleReasoner requires the dependencies listed in requirements.txt.
Build RuleReasoner from the source and install dependencies:
Clone the repository:
git clone https://github.com/bigai-nlco/RuleReasoner.git
Navigate to the project directory:
cd RuleReasoner
Install the dependencies:
pip install -r requirements.txt
pip install -e ./verl
pip install -e .
Run the training with:
./scripts/train/train_mix.sh
Run the evaluation with:
./scripts/eval/eval_model.sh \
--model $MODEL_PATH \
--datasets $DATASET_PATH \
--output-dir $OUTPUT_DIR
└── RuleReasoner
├── LICENSE
├── README.md
├── requirements.txt
├── scripts
│ ├── build_dataset.py
│ ├── data
│ ├── eval
│ └── train
├── setup.py
├── src
│ ├── __init__.py
│ ├── data
│ ├── globals.py
│ ├── system_prompts.py
│ └── utils.py
└── verl
└── ...
RuleReasoner project in the issues section.git clone https://github.com/<YOUR-USERNAME>/RuleReasoner.git
git checkout -b new-feature-x
git commit -m 'Implemented new feature x.'
git push origin new-feature-x
Rulereasoner is distributed under the terms of the MIT License.
@inproceedings{
liu2026rulereasoner,
title={RuleReasoner: Reinforced Rule-based Reasoning via Domain-aware Dynamic Sampling},
author={Yang Liu and Jiaqi Li and Zilong Zheng},
booktitle={The Fourteenth International Conference on Learning Representations},
year={2026},
url={https://openreview.net/forum?id=MQV4TJyqnb}
}
19 commits
2 commits
Python
91.1%
Shell
7.4%
Jupyter Notebook
1.5%