Parallel-R1

February 4, 2026 · View on GitHub

The official repository for "Parallel-R1: Towards Parallel Thinking via Reinforcement Learning".

Updates

About

This project introduces Parallel-R1, a new reinforcement learning (RL) framework designed to teach large language models (LLMs) parallel thinking for complex, real-world reasoning tasks. Unlike existing methods that rely on supervised fine-tuning (SFT) over costly, synthetic data, our approach enables models to learn parallel behaviors through RL.

Parallel-R1框架图

Key Contributions

  • A Novel RL Framework: We present the first RL framework to learn parallel thinking on general mathematical reasoning tasks.
  • Progressive Curriculum: The framework uses a progressive curriculum to overcome the "cold-start" problem. It begins with SFT on simpler tasks to teach the model the basic format of parallel thinking before transitioning to RL on harder problems.
  • Simple and Scalable Data Pipeline: We developed a simple data pipeline that uses prompting on easy math problems (like GSM8K) to generate high-quality "cold-start" data, which is then used to teach the model the parallel thinking format.
  • Strategic Evolution Analysis: We provide an in-depth analysis showing that the model's strategy evolves over the course of training. It shifts from using parallel paths for early-stage computational exploration to using them for late-stage multi-perspective verification.
  • Mid-Training Exploration Scaffold: We empirically validate the concept of using parallel thinking as a temporary "mid-training exploration scaffold" to unlock a higher performance ceiling after RL training.

Main Results

MethodParallel Ratio (%)AIME25 Mean@16AIME25 Pass@16AIME24 Mean@16AIME24 Pass@16AMC23 Mean@16AMC23 Pass@16MATH Mean@1Avg.
Qwen3-4B-Base0.01.310.22.916.58.151.213.96.6
SFT + Parallel
Parallel-SFT-Seen95.68.029.810.626.448.979.276.636.0
Parallel-SFT-Unseen95.65.220.98.526.741.780.171.531.7
RL Approach
GRPO (DAPO)0.014.832.418.530.663.685.183.545.1
+ RL on GSM8K0.013.326.318.834.966.482.282.645.3
Parallel-R1-Seen27.319.238.919.437.170.585.086.748.9
Parallel-R1-Unseen (S1)13.617.737.818.333.269.788.982.647.1
Parallel-R1-Unseen (S2)63.019.042.216.331.867.591.584.546.8

🧱 Release Overview

CategoryNameDescriptionLink
🧠 ModelsQwen3-4B-Base-SpecialBase model with added special tokens <Parallel>, <Path>, <Summary>🤗 Hugging Face
Parallel-R1-Unseen (S2)200-step mid-training checkpoint for reproduction of mid-training experiments🤗 Hugging Face
📘 DatasetsParallel-GSM8KCold-start dataset for teaching parallel format🤗 Hugging Face

Training Logs

🤗 Training Logs

🚀 Usage

1️⃣ Environment Setup

We recommend using Python 3.10+ and creating a fresh conda environment:

cd verl
conda create -n parallel-r1 python=3.10 -y
conda activate parallel-r1
USE_MEGATRON=0 bash scripts/install_vllm_sglang_mcore.sh
pip install --no-deps -e .

2️⃣ Perform SFT

cd verl
sh training_scripts/sft_exp.sh

2️⃣ Perform RL

To train Parallel-R1-Unseen (S1) from scratch

cd verl
sh training_scripts/rl_exp_s1.sh

To train Parallel-R1-Unseen (S2) from scratch

cd verl
sh training_scripts/rl_exp_s2.sh

To reproduce results of mid-training experiments

cd verl
sh training_scripts/mid_training_exp.sh

Citation

If you think this work is useful, please cite our paper.

@article{zheng2025parallel,
  title={Parallel-r1: Towards parallel thinking via reinforcement learning},
  author={Zheng, Tong and Zhang, Hongming and Yu, Wenhao and Wang, Xiaoyang and Yang, Xinyu and Dai, Runpeng and Liu, Rui and Bao, Huiwen and Huang, Chengsong and Huang, Heng and others},
  journal={arXiv preprint arXiv:2509.07980},
  year={2025}
}