Downloads · 30 days
0
fatemehdoudi97/egspo-dream-7b
egspo-dream-7b is a text generation model from fatemehdoudi97. Use it when you need the model to write or continue text. The card lists the license as apache-2.0.
This repository contains task-specific checkpoints for EGSPO and EGSPO-SA methods from our paper for DREAM-7B base model:
Downloads · 30 days
0
Access
Public
Updated May 14, 2026
Repo size
42.2 GB
Likes
1
Public
Click a slice to open those files.
.pt37 GB · 88%
From the Hugging Face model README
This repository contains task-specific checkpoints for EGSPO and EGSPO-SA methods from our paper for DREAM-7B base model:
"Reinforcement Learning for Diffusion LLMs with Entropy-Guided Step Selection and Stepwise Advantages"
📄 Paper (arXiv:2603.12554) | 💻 Code (GitHub)
We introduce principled RL methods for diffusion language models that:
Base Model: Dream-7B-Instruct (Diffusion Language Model adapted from Qwen2.5 via continued pretraining)
We provide checkpoints for two methods across four tasks:
| Task | EGSPO | EGSPO-SA | Best Performance |
|---|---|---|---|
| Sudoku | ✅ sudoku/egspo | ✅ sudoku/egspo-sa | 90.3% / 90.6% |
| Countdown | ✅ countdown/egspo | ✅ countdown/egspo-sa | 76.6% / 82.4% |
| GSM8K | ✅ gsm8k/egspo | ✅ gsm8k/egspo-sa | 82.3% / 86.1% |
| MATH500 | ✅ math/egspo | ✅ math/egspo-sa | 50.4% / 47.8% |
GSM8K and MATH500 are evaluated with 1-token/step decoding to match the ESPO baseline protocol; our models are trained with 2-token/step decoding.
EGSPO-SA generally achieves better performance, especially on logical reasoning tasks.
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
"Dream-org/Dream-v0-Instruct-7B",
torch_dtype="auto",
device_map="auto"
)
# Load EGSPO-SA checkpoint for GSM8K
model = PeftModel.from_pretrained(
base_model,
"fatemehdoudi97/egspo-dream-7b",
subfolder="gsm8k/egspo-sa"
)
tokenizer = AutoTokenizer.from_pretrained("Dream-org/Dream-v0-Instruct-7B")
# Example inference
prompt = "Solve: John has 5 apples and gives 2 to Mary. How many does he have left?"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_length=256,
temperature=0.9,
do_sample=True
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# EGSPO for Sudoku
model = PeftModel.from_pretrained(
base_model,
"fatemehdoudi97/egspo-dream-7b",
subfolder="sudoku/egspo"
)
# EGSPO-SA for Countdown
model = PeftModel.from_pretrained(
base_model,
"fatemehdoudi97/egspo-dream-7b",
subfolder="countdown/egspo-sa"
)
| Method | Sudoku | Countdown | GSM8K | MATH500 |
|---|---|---|---|---|
| Dream-7B-Instruct | 14.0 | 17.4 | 81.3 | 48.0 |
| ESPO | 72.3 | 68.8 | 82.3 | 50.3 |
| EGSPO (Ours) | 90.3 | 76.6 | 82.3 | 50.4 |
| EGSPO-SA (Ours) | 90.6 | 82.4 | 86.1 | 47.8 |
All results are 0-shot at the best generation length (128/256/512). GSM8K and MATH500 use 1-token/step decoding to match ESPO's evaluation protocol.
EGSPO:
EGSPO-SA:
If you use these checkpoints, please cite our paper:
@article{kunde2026Reinforcement,
title={Reinforcement Learning for Diffusion LLMs with Entropy-Guided Step Selection and Stepwise Advantages},
author={Kunde, Vishnu Teja and Doudi, Fatemeh and Farahbakhsh, Mahdi and Kalathil, Dileep and Narayanan, Krishna and Chamberland, Jean-Francois},
journal={arXiv preprint arXiv:2603.12554},
year={2026}
}
Apache 2.0
For questions or issues: