A QLoRA supervised fine-tune of
Qwen/Qwen3.5-27B trained on high-scoring game trajectories from the
Playpen benchmark (clembench 2.0). This model serves as the policy in a Process Reward Model (PRM) guided inference pipeline, where a companion PRM scores candidate responses at each game turn to select the best action.
The model is trained via supervised fine-tuning on game transcripts where the outcome was a win (positive clemscore contribution), filtered from rollouts of the base Qwen3.5-27B-Instruct model playing all clembench 2.0 games. The goal is to teach the policy the turn-level response patterns associated with successful multi-player game trajectories.
Evaluated on the
Playpen benchmark (clembench 2.0) using
clemscore (quality-weighted success rate across all games) and
statscore (static benchmark aggregate).
When used with the companion PRM (
Diginyx/Qwen3.5-27B-prm-ep1) in a best-of-N or beam search guided inference setup, this model achieves higher clemscore than the greedy baseline.
1from peft import PeftModel
2from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
3import torch
4
5bnb_config = BitsAndBytesConfig(
6 load_in_4bit=True,
7 bnb_4bit_compute_dtype=torch.bfloat16,
8 bnb_4bit_use_double_quant=True,
9 bnb_4bit_quant_type="nf4",
10)
11base = AutoModelForCausalLM.from_pretrained(
12 "Qwen/Qwen3.5-27B",
13 quantization_config=bnb_config,
14 device_map="auto",
15)
16model = PeftModel.from_pretrained(base, "Diginyx/Qwen3.5-27B-sft-ep1")
17tokenizer = AutoTokenizer.from_pretrained("Diginyx/Qwen3.5-27B-sft-ep1")
Install
Playpen and register the model in
model_registry.json:
1{
2 "model_name": "Qwen3.5-27B-sft-ep1",
3 "backend": "huggingface_local",
4 "huggingface_id": "Qwen/Qwen3.5-27B",
5 "model_config": {
6 "premade_chat_template": true,
7 "load_in_4bit": true,
8 "chat_template_kwargs": {"enable_thinking": false},
9 "peft_model": "Diginyx/Qwen3.5-27B-sft-ep1"
10 }
11}
1python examples/trl/prm_eval.py \
2 --policy-model Qwen3.5-27B-sft-ep1 \
3 --prm-path Diginyx/Qwen3.5-27B-prm-ep1 \
4 --game-all \
5 --n-candidates 4 \
6 --temperature 0.7 \
7 --max-tokens 2048
1python examples/trl/prm_eval.py \
2 --policy-model Qwen3.5-27B-sft-ep1 \
3 --prm-path Diginyx/Qwen3.5-27B-prm-ep1 \
4 --mode beam-search \
5 --n-candidates 4 \
6 --num-beam-iterations 20 \
7 --game-all \
8 --temperature 0.7 \
9 --max-tokens 2048
The full training and inference pipeline is available at
Diginyx/playpen-prm-code: