ReflectRL: Learning from Golden Negative Trajectories via Reflective-to-Direct Reasoning
Paper • 2608.03972 • Published • 3
How to use Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO")
model = AutoModelForCausalLM.from_pretrained("Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO", device_map="auto")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))How to use Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO
How to use Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO with Docker Model Runner:
docker model run hf.co/Jinhe/ReflectRL-Qwen2.5-Math-7B-DAPO
This model checkpoint is part of the work presented in ReflectRL: Learning from Golden Negative Trajectories via Reflective-to-Direct Reasoning.
ReflectRL is a lightweight framework for learning from Golden Negative Trajectories (GNTs) during on-policy post-training. Instead of imitating failed expert trajectories directly, ReflectRL uses them as reflective context during training and gradually transitions the policy back to direct reasoning for inference.
@article{reflectrl2027,
title={ReflectRL: Learning from Golden Negative Trajectories via Reflective-to-Direct Reasoning},
author={Jinhe Bi and Chennan Zhou and Zengjie Jin and Aniri and Shuo Lu and Wenke Huang and Hu Cao and Xun Xiao and Zhihong Zhu and Volker Tresp and Fei Shen and Yunpu Ma and Tat-Seng Chua},
year={2026}
}