Note: When evaluating
SSFT-32B (
🤗 HF link), use
<think1> for
Pass@1, and use the set
<think1>...<think6> (parallel generations) for
Cons@k. Our custom
LightEval code inserts these tags automatically. If you’re using other frameworks and don’t want to manage
<think i> prompting, try our
GRPO fine-tuned model (
🤗 HF link), which uses RL to only optimize global forking tokens for selecting the optimal tag per question (very efficient with 1k data from DAPO-17k). SSFT-GRPO models can sample the optimal think tag for your questions, so you can just run them directly.
1git clone https://github.com/Sheng-J/SSFT.git
2cd SSFT
3uv venv ssft_env --python 3.11 && source ssft_env/bin/activate && uv pip install --upgrade pip
4uv pip install torch==2.7.0 --index-url https://download.pytorch.org/whl/cu128
5uv pip install -r requirements.txt
6uv pip install -e ./transformers
7uv pip install -e ./lighteval
1@article{jia2025training,
2 title={Training Large Language Models To Reason In Parallel With Global Forking Tokens},
3 author={Jia, Sheng and Wang, Xiao and Kasiviswanathan, Shiva Prasad},
4 journal={arXiv preprint arXiv:2510.05132},
5 year={2025}
6}