Update README.md
Browse files
README.md
CHANGED
@@ -1,199 +1,104 @@
|
|
1 |
-
---
|
2 |
-
library_name: transformers
|
3 |
-
tags:
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
- **
|
21 |
-
- **Funded by [optional]:** [More Information Needed]
|
22 |
-
- **Shared by [optional]:** [More Information Needed]
|
23 |
-
- **Model type:** [More Information Needed]
|
24 |
-
- **Language(s) (NLP):** [More Information Needed]
|
25 |
-
- **License:** [More Information Needed]
|
26 |
-
- **Finetuned from model [optional]:** [More Information Needed]
|
27 |
-
|
28 |
-
### Model Sources [optional]
|
29 |
-
|
30 |
-
<!-- Provide the basic links for the model. -->
|
31 |
-
|
32 |
-
- **Repository:** [More Information Needed]
|
33 |
-
- **Paper [optional]:** [More Information Needed]
|
34 |
-
- **Demo [optional]:** [More Information Needed]
|
35 |
-
|
36 |
-
## Uses
|
37 |
-
|
38 |
-
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
|
39 |
-
|
40 |
-
### Direct Use
|
41 |
-
|
42 |
-
<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
|
43 |
-
|
44 |
-
[More Information Needed]
|
45 |
-
|
46 |
-
### Downstream Use [optional]
|
47 |
-
|
48 |
-
<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
|
49 |
-
|
50 |
-
[More Information Needed]
|
51 |
-
|
52 |
-
### Out-of-Scope Use
|
53 |
-
|
54 |
-
<!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
|
55 |
-
|
56 |
-
[More Information Needed]
|
57 |
-
|
58 |
-
## Bias, Risks, and Limitations
|
59 |
-
|
60 |
-
<!-- This section is meant to convey both technical and sociotechnical limitations. -->
|
61 |
-
|
62 |
-
[More Information Needed]
|
63 |
-
|
64 |
-
### Recommendations
|
65 |
-
|
66 |
-
<!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
|
67 |
-
|
68 |
-
Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
|
69 |
-
|
70 |
-
## How to Get Started with the Model
|
71 |
-
|
72 |
-
Use the code below to get started with the model.
|
73 |
-
|
74 |
-
[More Information Needed]
|
75 |
-
|
76 |
-
## Training Details
|
77 |
-
|
78 |
-
### Training Data
|
79 |
-
|
80 |
-
<!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
|
81 |
-
|
82 |
-
[More Information Needed]
|
83 |
-
|
84 |
-
### Training Procedure
|
85 |
|
86 |
-
|
87 |
-
|
88 |
-
#### Preprocessing [optional]
|
89 |
-
|
90 |
-
[More Information Needed]
|
91 |
-
|
92 |
-
|
93 |
-
#### Training Hyperparameters
|
94 |
-
|
95 |
-
- **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
|
96 |
-
|
97 |
-
#### Speeds, Sizes, Times [optional]
|
98 |
-
|
99 |
-
<!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
|
100 |
-
|
101 |
-
[More Information Needed]
|
102 |
-
|
103 |
-
## Evaluation
|
104 |
-
|
105 |
-
<!-- This section describes the evaluation protocols and provides the results. -->
|
106 |
-
|
107 |
-
### Testing Data, Factors & Metrics
|
108 |
-
|
109 |
-
#### Testing Data
|
110 |
-
|
111 |
-
<!-- This should link to a Dataset Card if possible. -->
|
112 |
-
|
113 |
-
[More Information Needed]
|
114 |
-
|
115 |
-
#### Factors
|
116 |
-
|
117 |
-
<!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
|
118 |
-
|
119 |
-
[More Information Needed]
|
120 |
-
|
121 |
-
#### Metrics
|
122 |
-
|
123 |
-
<!-- These are the evaluation metrics being used, ideally with a description of why. -->
|
124 |
-
|
125 |
-
[More Information Needed]
|
126 |
-
|
127 |
-
### Results
|
128 |
-
|
129 |
-
[More Information Needed]
|
130 |
-
|
131 |
-
#### Summary
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
## Model Examination [optional]
|
136 |
-
|
137 |
-
<!-- Relevant interpretability work for the model goes here -->
|
138 |
-
|
139 |
-
[More Information Needed]
|
140 |
-
|
141 |
-
## Environmental Impact
|
142 |
-
|
143 |
-
<!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
|
144 |
-
|
145 |
-
Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
|
146 |
-
|
147 |
-
- **Hardware Type:** [More Information Needed]
|
148 |
-
- **Hours used:** [More Information Needed]
|
149 |
-
- **Cloud Provider:** [More Information Needed]
|
150 |
-
- **Compute Region:** [More Information Needed]
|
151 |
-
- **Carbon Emitted:** [More Information Needed]
|
152 |
-
|
153 |
-
## Technical Specifications [optional]
|
154 |
-
|
155 |
-
### Model Architecture and Objective
|
156 |
|
157 |
-
|
158 |
|
159 |
-
|
160 |
|
161 |
-
[More Information Needed]
|
162 |
|
163 |
-
|
|
|
|
|
164 |
|
165 |
-
|
166 |
|
167 |
-
|
168 |
|
169 |
-
|
|
|
|
|
170 |
|
171 |
-
|
|
|
|
|
|
|
|
|
172 |
|
173 |
-
|
174 |
|
175 |
-
|
176 |
|
177 |
-
|
178 |
|
179 |
-
**APA:**
|
180 |
|
181 |
-
[More Information Needed]
|
182 |
|
183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
|
185 |
-
|
186 |
|
187 |
-
[More Information Needed]
|
188 |
|
189 |
-
## More Information [optional]
|
190 |
|
191 |
-
|
192 |
|
193 |
-
## Model Card Authors [optional]
|
194 |
|
195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
|
197 |
-
|
198 |
|
199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
library_name: transformers
|
3 |
+
tags:
|
4 |
+
- reasoning
|
5 |
+
- Zero-RL
|
6 |
+
license: mit
|
7 |
+
base_model:
|
8 |
+
- Qwen/Qwen2.5-Math-7B
|
9 |
+
pipeline_tag: text-generation
|
10 |
+
---
|
11 |
+
# 📖Introduction
|
12 |
+
|
13 |
+

|
14 |
+
|
15 |
+
LUFFY is a reinforcement learning framework that bridges the gap between zero-RL and imitation learning by incorporating off-policy reasoning traces into the training process. Built upon GRPO, LUFFY combines on-policy rollouts with off-policy demonstrations during advantage estimation and introduces **policy shaping** via regularized importance sampling to emphasize low-probability yet crucial actions.
|
16 |
+
|
17 |
+
### Key Highlights:
|
18 |
+
- **Off-Policy Guidance:** Seamlessly integrates external reasoning traces to bootstrap learning from stronger models.
|
19 |
+
- **Dynamic Balance:** Learns when to imitate and when to explore, adapting over the course of training.
|
20 |
+
- **Policy Shaping:** Emphasizes important actions often ignored in standard policy gradients, enabling better generalization.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
+
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
+
## Inference
|
25 |
|
26 |
+
Here’s an example of using LUFFY for inference:
|
27 |
|
|
|
28 |
|
29 |
+
```python
|
30 |
+
from transformers import AutoTokenizer
|
31 |
+
from vllm import LLM, SamplingParams
|
32 |
|
33 |
+
model_path="Elliott/LUFFY-Qwen-Math-7B-Zero"
|
34 |
|
35 |
+
question = "which number is larger? 9.11 or 9.9?"
|
36 |
|
37 |
+
tokenizer = AutoTokenizer.from_pretrained(model_path)
|
38 |
+
messages = [{"role": "user", "content": question}]
|
39 |
+
chat = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
|
40 |
|
41 |
+
llm = LLM(model=model_path)
|
42 |
+
params = SamplingParams(temperature=0.6, max_tokens=8192)
|
43 |
+
outputs = llm.generate([chat], params)
|
44 |
+
print(outputs[0].outputs[0].text)
|
45 |
+
```
|
46 |
|
47 |
+
---
|
48 |
|
49 |
+
# 📃Evaluation
|
50 |
|
51 |
+
LUFFY is evaluated on six competition-level benchmarks, achieving state-of-the-art results among all zero-RL methods. It surpasses both on-policy RL and imitation learning (SFT), especially in generalization:
|
52 |
|
|
|
53 |
|
|
|
54 |
|
55 |
+
| **Model** | **AIME 2024** | **AIME 2025** | **AMC** | **MATH-500** | **Minerva** | **Olympiad** | **Avg.** |
|
56 |
+
|-----------------------------------|-------------|-------------|---------|---------------|-------------|---------------|----------|
|
57 |
+
| Qwen2.5-Math | 12.9 | 4.2 | 32.6 | 48.8 | 10.7 | 14.8 | 20.7 |
|
58 |
+
| Qwen2.5-Math-Instruct | 11.4 | 8.8 | 48.3 | 81.2 | 33.1 | 38.8 | 36.9 |
|
59 |
+
| SimpleRL-Zero | 26.3 | 6.7 | 55.4 | 74.4 | 25.7 | 35.4 | 37.3 |
|
60 |
+
| OpenReasoner-Zero | 17.2 | 15.0 | 52.3 | 84.6 | 33.8 | 47.1 | 41.7 |
|
61 |
+
| PRIME-Zero | 17.9 | 14.7 | 55.2 | 79.4 | **38.2** | 42.2 | 41.3 |
|
62 |
+
| Oat-Zero | **31.7** | 11.0 | 61.6 | 79.2 | 29.8 | 42.5 | 42.6 |
|
63 |
+
| SFT (Our repication) | 28.6 | **23.5** | 59.0 | 86.0 | 37.5 | 51.1 | 47.6 |
|
64 |
+
| On-Policy RL (Our repication) | 24.6 | 15.7 | 61.3 | 84.6 | 34.9 | 47.9 | 44.8 |
|
65 |
+
| **LUFFY** | 29.5 | 23.2 | **66.1**| **88.4** | 33.8 | **56.4** | **49.6** |
|
66 |
|
67 |
+
---
|
68 |
|
|
|
69 |
|
|
|
70 |
|
71 |
+
LUFFY also generalizes well to out-of-distribution tasks, with over +6.2 average gain on ARC-C, GPQA, and MMLU-Pro.
|
72 |
|
|
|
73 |
|
74 |
+
| **Model** | **ARC-c** | **GPQA-diamond** | **MMLU-Pro** | **Avg.** |
|
75 |
+
|----------------------------------|-----------|------------------|--------------|----------|
|
76 |
+
| Qwen2.5-Math-7B-Base | 18.2 | 11.1 | 16.9 | 15.4 |
|
77 |
+
| Qwen2.5-Math-7B-Instruct | 70.3 | 24.7 | 34.1 | 43.0 |
|
78 |
+
| SimpleRL-Zero | 30.2 | 23.2 | 34.5 | 29.3 |
|
79 |
+
| OpenReasoner-Zero | 66.2 | 29.8 | 58.7 | 51.6 |
|
80 |
+
| PRIME-Zero | **73.3** | 18.2 | 32.7 | 41.4 |
|
81 |
+
| Oat-Zero | 70.1 | 23.7 | 41.7 | 45.2 |
|
82 |
+
| SFT (Our repication) | 75.2 | 24.7 | 42.7 | 47.5 |
|
83 |
+
| On-Policy RL (Our repication) | **82.3** | **40.4** | _49.3_ | _57.3_ |
|
84 |
+
| **LUFFY** | _80.5_ | _39.9_ | **53.0** | **57.8** |
|
85 |
|
86 |
+
---
|
87 |
|
88 |
+
# 🌻Acknowledgement
|
89 |
+
|
90 |
+
LUFFY builds upon [veRL](https://github.com/volcengine/verl) and [deepscaler](https://github.com/agentica-project/rllm), and utilizes [vLLM](https://github.com/vllm-project/vllm) for inference. We utilize [Math-Verify](https://github.com/huggingface/Math-Verify) for math reasoning evaluation. We thank the open-source community for datasets and backbones, including [NuminaMath](https://huggingface.co/datasets/AI-MO/NuminaMath-CoT), [OpenR1-Math-220k](https://huggingface.co/datasets/open-r1/OpenR1-Math-220k), [Qwen2.5-Math](https://github.com/QwenLM/Qwen2.5-Math), and [DeepSeek-R1](https://github.com/deepseek-ai/deepseek-r1) model.
|
91 |
+
|
92 |
+
# Citation
|
93 |
+
If you find our model, data, or evaluation code useful, please kindly cite our paper:
|
94 |
+
```bib
|
95 |
+
@misc{luffy,
|
96 |
+
title={Learning to Reason under Off-Policy Guidance},
|
97 |
+
author={Jianhao Yan and Yafu Li and Zican Hu and Zhi Wang and Ganqu Cui and Xiaoye Qu and Yu Cheng and Yue Zhang},
|
98 |
+
year={2025},
|
99 |
+
eprint={2504.14945},
|
100 |
+
archivePrefix={arXiv},
|
101 |
+
primaryClass={cs.LG},
|
102 |
+
url={https://arxiv.org/abs/2504.14945},
|
103 |
+
}
|
104 |
+
```
|