File size: 2,519 Bytes
f87bf40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d7eb503
f87bf40
 
 
 
 
 
 
 
 
fda7dac
f87bf40
 
 
 
 
 
 
 
 
 
 
 
5c777ec
f87bf40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
---
license: mit
datasets:
- RLVR-SvS/Variational-DAPO
language:
- en
metrics:
- accuracy
base_model:
- Qwen/Qwen2.5-7B-Instruct
pipeline_tag: reinforcement-learning
---

# Model Card for SvS-Code-7B (from Qwen2.5-7B-Instruct)

<p align="left">
  <a href="https://mastervito.github.io/SvS.github.io/"><b>[🌐 Website]</b></a> β€’
  <a href="https://huggingface.co/datasets/RLVR-SvS/Variational-DAPO"><b>[πŸ€— Dataset]</b></a> β€’
  <a href="https://huggingface.co/RLVR-SvS/SvS-Qwen-32B"><b>[πŸ€– Models]</b></a> β€’
  <a href="https://arxiv.org/abs/2508.14029"><b>[πŸ“œ Paper]</b></a> β€’
  <a href="https://github.com/MasterVito/SvS"><b>[🐱 GitHub]</b></a> β€’
  <a href="https://huggingface.co/datasets/RLVR-SvS/Variational-DAPO"><b>[🐦 Twitter]</b></a> β€’
  <a href="https://huggingface.co/datasets/RLVR-SvS/Variational-DAPO"><b>[πŸ“• Rednote]</b></a>
</p>

The official model checkpoints for <a href="https://arxiv.org/abs/2508.14029"><b>SvS</b></a>. The SvS model is trained on a subset of coding tasks from PRIME-RL dataset (included in this repository as <code>12k_code_rl.parquet</code>).

# Inference
We recommend using our official inference template from Qwen2.5 Instruct models.

```python
model_name = "RLVR-SvS/SvS-Qwen-Code-7B"
device = "cuda" # the device to load the model onto

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

prompt = "write a quick sort algorithm."

messages = [
    {"role": "user", "content": prompt}
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(device)

generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=8192
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
```

# Cite Us
If you find the model helpful, please consider citing our paper:

```
@misc{liang2025pass1selfplayvariationalproblem,
      title={Beyond Pass@1: Self-Play with Variational Problem Synthesis Sustains RLVR}, 
      author={Xiao Liang and Zhongzhi Li and Yeyun Gong and Yelong Shen and Ying Nian Wu and Zhijiang Guo and Weizhu Chen},
      year={2025},
      eprint={2508.14029},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2508.14029}, 
}
```