Instructions to use iclr1367/rubric-rewards-adapters with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use iclr1367/rubric-rewards-adapters with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
rubric-rewards: LoRA adapters
All 445 policy adapters from the paper From Constitutions to Control: Interpretable Rewards for Aligning Language Models, one folder per fine-tuning arm, plus the harm-softened response generator for GPT-OSS. Layout:
gemma/ qwen/ gptoss/ one folder per base model (each has its own README with the arm list)
free/<arm>/ policies fine-tuned against the unconstrained rubric reward (β_help, β_lean, β_sycophancy arms)
constrained/<arm>/ the same arms under the sign-constrained reward
discrimination/<rm>_<q>/ §4.5 dose policies (reward model × injected-bias dose)
dose_rm/<rm>_<q>/ the neural reward-model adapters used to select the dose policies
generation/harm_softened/ (gptoss only) the adapter that wrote the "softened" harm candidates
INDEX.jsonl one row per adapter: model, reward, arm, internal name, size
Every policy adapter is a standard PEFT LoRA directory (peft 0.19.1; r = 16, α = 32, dropout 0.05 on q/k/v/o), trained
with the recipe in the paper's appendix; load with PeftModel.from_pretrained(base, "iclr1367/rubric-rewards-adapters", subfolder="gptoss/free/help1_lean+3"). Training sets, generations, judgments and every number behind the figures are in
the companion dataset iclr1367/rubric-rewards; the code is at github.com/iclr1367-commits/rubric-rewards.
Adapters inherit the licenses of their base models (Gemma Terms of Use; Apache-2.0 for Qwen3 and gpt-oss).
gemma
Gemma 3 12B: policies fine-tuned against rubric-based rewards
LoRA adapters from the paper From Constitutions to Control: Interpretable Rewards for Aligning Language Models.
Every adapter is a standard PEFT LoRA directory on google/gemma-3-12b-it (peft 0.19.1): r = 16, alpha = 32, dropout 0.05 on
q/k/v/o, bf16 (gpt-oss dequantized from MXFP4), AdamW 1e-4 with cosine decay and 3% warmup (10 steps for gpt-oss),
2 epochs, effective batch 16, max length 1,024, seed 0, final weights. Training sets (raw/sft/ in the data repo
iclr1367/rubric-rewards) hold 1,000 harm + 1,000 political prompts whose targets were selected by the steered rubric reward,
plus 500 Tülu-3 rows; sycophancy arms 1,000 + 250. Qwen and gpt-oss were trained and evaluated with reasoning off.
Evaluation decoding: vLLM bf16, temperature 0.7, top-p 0.9, 512 new tokens, one sample per prompt, vLLM default engine seed (0).
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("google/gemma-3-12b-it")
base = AutoModelForCausalLM.from_pretrained("google/gemma-3-12b-it", torch_dtype="bfloat16")
policy = PeftModel.from_pretrained(base, "<this repo>", subfolder="free/help1_lean+3")
Layout
| folder | count | what |
|---|---|---|
free/<arm>/ |
38 | policies trained against the unconstrained rubric reward: the steering grid help<b>_lean<b> (β_help ∈ {0, 0.25, 0.5, 1, ∞} × β_lean ∈ {−3, −1, 0, 1, 3, ±∞}, no double-infinite corners) and the sycophancy ladder syc<b> (β ∈ {0, 0.5, 1, 2, ∞}) |
constrained/<arm>/ |
38 | the same grid against the sign-constrained reward |
discrimination/<rm>_q<q>/ |
42 | job-recommendation policies trained from each reward model's picks at injected bias q ∈ {0, 0.2, …, 1} |
dose_rm/<rm>_q<q>/ |
30 | the dose-injected neural reward models themselves (LoRA on OpenAssistant/reward-model-deberta-v3-large-v2, Skywork/Skywork-Reward-V2-Llama-3.1-8B, Skywork/Skywork-Reward-V2-Llama-3.2-3B, Skywork/Skywork-Reward-V2-Llama-3.2-1B, nicolinho/QRM-Gemma-2-27B; Bradley–Terry, 3 epochs, lr 1e-5 for all five, batch 2, max length 512) |
Held-out behaviour of the steering-grid and sycophancy policies (unconstrained reward)
| arm | harm (1–5) | help (0–3) | political lean (−, liberal … +, conservative) | sycophancy framing gap |
|---|---|---|---|---|
help0.25_lean+1 |
1.31 | 0.43 | -0.90 | |
help0.25_lean+3 |
1.39 | 0.43 | 1.01 | |
help0.25_lean+inf |
1.33 | 0.40 | 1.82 | |
help0.25_lean-1 |
1.25 | 0.38 | -1.67 | |
help0.25_lean-3 |
1.32 | 0.41 | -2.06 | |
help0.25_lean-inf |
1.32 | 0.39 | -1.97 | |
help0.25_lean0 |
1.25 | 0.39 | -1.25 | |
help0.5_lean+1 |
2.48 | 1.30 | -1.15 | |
help0.5_lean+3 |
2.73 | 1.54 | 0.87 | |
help0.5_lean+inf |
2.37 | 1.28 | 1.99 | |
help0.5_lean-1 |
2.19 | 1.05 | -1.79 | |
help0.5_lean-3 |
2.27 | 1.19 | -2.02 | |
help0.5_lean-inf |
2.23 | 1.14 | -2.14 | |
help0.5_lean0 |
2.37 | 1.22 | -1.37 | |
help0_lean+1 |
1.00 | 0.07 | -0.64 | |
help0_lean+3 |
1.02 | 0.07 | 1.05 | |
help0_lean+inf |
1.01 | 0.05 | 1.75 | |
help0_lean-1 |
1.00 | 0.06 | -1.60 | |
help0_lean-3 |
1.05 | 0.12 | -2.10 | |
help0_lean-inf |
1.00 | 0.06 | -2.00 | |
help0_lean0 |
1.00 | 0.04 | -1.00 | |
help1_lean+1 |
3.43 | 1.99 | -1.03 | |
help1_lean+3 |
3.37 | 1.94 | -0.12 | |
help1_lean+inf |
3.69 | 2.17 | 1.98 | |
help1_lean-1 |
3.20 | 1.90 | -1.75 | |
help1_lean-3 |
3.06 | 1.75 | -1.93 | |
help1_lean-inf |
3.42 | 2.02 | -2.04 | |
help1_lean0 |
3.40 | 2.00 | -1.42 | |
helpinf_lean+1 |
3.76 | 2.26 | -1.25 | |
helpinf_lean+3 |
3.69 | 2.25 | -0.86 | |
helpinf_lean-1 |
3.79 | 2.29 | -1.58 | |
helpinf_lean-3 |
3.81 | 2.27 | -1.99 | |
helpinf_lean0 |
3.67 | 2.12 | -1.33 | |
syc0 |
1.24 | 0.35 | -0.57 | 1.16 |
syc0.5 |
1.29 | 0.49 | -0.57 | 0.64 |
syc1 |
1.29 | 0.47 | -0.66 | 0.38 |
syc2 |
1.28 | 0.51 | -0.60 | 0.39 |
sycinf |
1.23 | 0.42 | -0.60 | 0.28 |
All numbers are means over the held-out prompts (tables/policy_judge_obs, tables/policy_syc_obs in iclr1367/rubric-rewards); judge = gpt-5.6-luna.
License
Adapters inherit the base model's license; our weights and data are released under CC-BY-4.0. See the data repo for upstream sources and known issues.
qwen
Qwen3 14B: policies fine-tuned against rubric-based rewards
LoRA adapters from the paper From Constitutions to Control: Interpretable Rewards for Aligning Language Models.
Every adapter is a standard PEFT LoRA directory on Qwen/Qwen3-14B (peft 0.19.1): r = 16, alpha = 32, dropout 0.05 on
q/k/v/o, bf16 (gpt-oss dequantized from MXFP4), AdamW 1e-4 with cosine decay and 3% warmup (10 steps for gpt-oss),
2 epochs, effective batch 16, max length 1,024, seed 0, final weights. Training sets (raw/sft/ in the data repo
iclr1367/rubric-rewards) hold 1,000 harm + 1,000 political prompts whose targets were selected by the steered rubric reward,
plus 500 Tülu-3 rows; sycophancy arms 1,000 + 250. Qwen and gpt-oss were trained and evaluated with reasoning off.
Evaluation decoding: vLLM bf16, temperature 0.7, top-p 0.9, 512 new tokens, one sample per prompt, vLLM default engine seed (0).
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3-14B")
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-14B", torch_dtype="bfloat16")
policy = PeftModel.from_pretrained(base, "<this repo>", subfolder="free/help1_lean+3")
Layout
| folder | count | what |
|---|---|---|
free/<arm>/ |
38 | policies trained against the unconstrained rubric reward: the steering grid help<b>_lean<b> (β_help ∈ {0, 0.25, 0.5, 1, ∞} × β_lean ∈ {−3, −1, 0, 1, 3, ±∞}, no double-infinite corners) and the sycophancy ladder syc<b> (β ∈ {0, 0.5, 1, 2, ∞}) |
constrained/<arm>/ |
38 | the same grid against the sign-constrained reward |
discrimination/<rm>_q<q>/ |
42 | job-recommendation policies trained from each reward model's picks at injected bias q ∈ {0, 0.2, …, 1} |
dose_rm/<rm>_q<q>/ |
30 | the dose-injected neural reward models themselves (LoRA on OpenAssistant/reward-model-deberta-v3-large-v2, Skywork/Skywork-Reward-V2-Llama-3.1-8B, Skywork/Skywork-Reward-V2-Llama-3.2-3B, Skywork/Skywork-Reward-V2-Llama-3.2-1B, nicolinho/QRM-Gemma-2-27B; Bradley–Terry, 3 epochs, lr 1e-5 for all five, batch 2, max length 512) |
Held-out behaviour of the steering-grid and sycophancy policies (unconstrained reward)
| arm | harm (1–5) | help (0–3) | political lean (−, liberal … +, conservative) | sycophancy framing gap |
|---|---|---|---|---|
help0.25_lean+1 |
1.43 | 0.54 | -0.46 | |
help0.25_lean+3 |
1.35 | 0.51 | 1.28 | |
help0.25_lean+inf |
1.41 | 0.52 | 1.63 | |
help0.25_lean-1 |
1.41 | 0.50 | -2.30 | |
help0.25_lean-3 |
1.40 | 0.57 | -2.40 | |
help0.25_lean-inf |
1.45 | 0.56 | -2.40 | |
help0.25_lean0 |
1.31 | 0.49 | -1.99 | |
help0.5_lean+1 |
2.77 | 1.53 | -0.79 | |
help0.5_lean+3 |
2.85 | 1.53 | 1.28 | |
help0.5_lean+inf |
2.89 | 1.56 | 1.72 | |
help0.5_lean-1 |
2.58 | 1.45 | -2.28 | |
help0.5_lean-3 |
2.75 | 1.50 | -2.45 | |
help0.5_lean-inf |
2.56 | 1.42 | -2.44 | |
help0.5_lean0 |
2.45 | 1.29 | -2.00 | |
help0_lean+1 |
1.01 | 0.09 | 0.20 | |
help0_lean+3 |
1.03 | 0.09 | 1.23 | |
help0_lean+inf |
1.05 | 0.12 | 1.64 | |
help0_lean-1 |
1.02 | 0.08 | -2.37 | |
help0_lean-3 |
1.01 | 0.12 | -2.36 | |
help0_lean-inf |
1.00 | 0.09 | -2.42 | |
help0_lean0 |
1.03 | 0.11 | -1.87 | |
help1_lean+1 |
3.62 | 2.17 | -0.74 | |
help1_lean+3 |
3.55 | 2.10 | 0.94 | |
help1_lean+inf |
3.67 | 2.10 | 1.77 | |
help1_lean-1 |
3.42 | 2.03 | -2.35 | |
help1_lean-3 |
3.61 | 2.08 | -2.35 | |
help1_lean-inf |
3.44 | 2.04 | -2.37 | |
help1_lean0 |
3.65 | 2.14 | -2.02 | |
helpinf_lean+1 |
3.76 | 2.17 | -0.70 | |
helpinf_lean+3 |
3.64 | 2.12 | 0.54 | |
helpinf_lean-1 |
3.70 | 2.12 | -2.31 | |
helpinf_lean-3 |
3.73 | 2.20 | -2.33 | |
helpinf_lean0 |
3.56 | 2.15 | -2.10 | |
syc0 |
1.12 | 0.35 | -0.82 | 0.93 |
syc0.5 |
1.21 | 0.41 | -0.68 | 0.32 |
syc1 |
1.21 | 0.43 | -0.77 | 0.29 |
syc2 |
1.19 | 0.39 | -0.76 | 0.12 |
sycinf |
1.16 | 0.38 | -0.73 | 0.21 |
All numbers are means over the held-out prompts (tables/policy_judge_obs, tables/policy_syc_obs in iclr1367/rubric-rewards); judge = gpt-5.6-luna.
License
Adapters inherit the base model's license; our weights and data are released under CC-BY-4.0. See the data repo for upstream sources and known issues.
gptoss
GPT-OSS 20B: policies fine-tuned against rubric-based rewards
LoRA adapters from the paper From Constitutions to Control: Interpretable Rewards for Aligning Language Models.
Every adapter is a standard PEFT LoRA directory on openai/gpt-oss-20b (peft 0.19.1): r = 16, alpha = 32, dropout 0.05 on
q/k/v/o, bf16 (gpt-oss dequantized from MXFP4), AdamW 1e-4 with cosine decay and 3% warmup (10 steps for gpt-oss),
2 epochs, effective batch 16, max length 1,024, seed 0, final weights. Training sets (raw/sft/ in the data repo
iclr1367/rubric-rewards) hold 1,000 harm + 1,000 political prompts whose targets were selected by the steered rubric reward,
plus 500 Tülu-3 rows; sycophancy arms 1,000 + 250. Qwen and gpt-oss were trained and evaluated with reasoning off.
Evaluation decoding: vLLM bf16, temperature 0.7, top-p 0.9, 512 new tokens, one sample per prompt, vLLM default engine seed (0).
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("openai/gpt-oss-20b")
base = AutoModelForCausalLM.from_pretrained("openai/gpt-oss-20b", torch_dtype="bfloat16")
policy = PeftModel.from_pretrained(base, "<this repo>", subfolder="free/help1_lean+3")
Layout
| folder | count | what |
|---|---|---|
free/<arm>/ |
38 | policies trained against the unconstrained rubric reward: the steering grid help<b>_lean<b> (β_help ∈ {0, 0.25, 0.5, 1, ∞} × β_lean ∈ {−3, −1, 0, 1, 3, ±∞}, no double-infinite corners) and the sycophancy ladder syc<b> (β ∈ {0, 0.5, 1, 2, ∞}) |
constrained/<arm>/ |
38 | the same grid against the sign-constrained reward |
discrimination/<rm>_q<q>/ |
42 | job-recommendation policies trained from each reward model's picks at injected bias q ∈ {0, 0.2, …, 1} |
dose_rm/<rm>_q<q>/ |
30 | the dose-injected neural reward models themselves (LoRA on OpenAssistant/reward-model-deberta-v3-large-v2, Skywork/Skywork-Reward-V2-Llama-3.1-8B, Skywork/Skywork-Reward-V2-Llama-3.2-3B, Skywork/Skywork-Reward-V2-Llama-3.2-1B, nicolinho/QRM-Gemma-2-27B; Bradley–Terry, 3 epochs, lr 1e-5 for all five, batch 2, max length 512) |
generation/harm_softened/ |
1 | the LoRA that generated gpt-oss's softened harm candidates (base gpt-oss refuses the rewrite) (trained on 1,000 gemma-written softened responses; see the data repo's raw/sft/gptoss_harm_softened_generator.jsonl and the known-issues section of its card) |
Held-out behaviour of the steering-grid and sycophancy policies (unconstrained reward)
| arm | harm (1–5) | help (0–3) | political lean (−, liberal … +, conservative) | sycophancy framing gap |
|---|---|---|---|---|
help0.25_lean+1 |
1.66 | 0.62 | -0.34 | |
help0.25_lean+3 |
1.43 | 0.55 | 0.69 | |
help0.25_lean+inf |
1.74 | 0.68 | 1.02 | |
help0.25_lean-1 |
1.67 | 0.64 | -1.59 | |
help0.25_lean-3 |
1.34 | 0.41 | -1.96 | |
help0.25_lean-inf |
1.57 | 0.59 | -1.93 | |
help0.25_lean0 |
1.63 | 0.61 | -0.81 | |
help0.5_lean+1 |
2.79 | 1.48 | -0.17 | |
help0.5_lean+3 |
2.89 | 1.57 | 0.73 | |
help0.5_lean+inf |
2.86 | 1.55 | 0.81 | |
help0.5_lean-1 |
2.77 | 1.54 | -1.73 | |
help0.5_lean-3 |
2.67 | 1.45 | -1.80 | |
help0.5_lean-inf |
2.79 | 1.44 | -1.86 | |
help0.5_lean0 |
2.85 | 1.53 | -1.16 | |
help0_lean+1 |
1.17 | 0.27 | -0.36 | |
help0_lean+3 |
1.18 | 0.28 | 0.79 | |
help0_lean+inf |
1.13 | 0.23 | 0.82 | |
help0_lean-1 |
1.08 | 0.18 | -1.23 | |
help0_lean-3 |
1.11 | 0.25 | -1.81 | |
help0_lean-inf |
1.10 | 0.18 | -1.89 | |
help0_lean0 |
1.21 | 0.28 | -0.45 | |
help1_lean+1 |
3.71 | 2.24 | -0.20 | |
help1_lean+3 |
3.75 | 2.22 | 0.82 | |
help1_lean+inf |
3.84 | 2.20 | 0.93 | |
help1_lean-1 |
3.42 | 2.00 | -1.81 | |
help1_lean-3 |
3.38 | 1.95 | -1.89 | |
help1_lean-inf |
3.59 | 2.16 | -1.89 | |
help1_lean0 |
3.73 | 2.22 | -1.27 | |
helpinf_lean+1 |
3.89 | 2.31 | -0.27 | |
helpinf_lean+3 |
3.95 | 2.44 | 0.35 | |
helpinf_lean-1 |
3.68 | 2.28 | -1.76 | |
helpinf_lean-3 |
3.67 | 2.17 | -1.86 | |
helpinf_lean0 |
3.88 | 2.33 | -1.18 | |
syc0 |
1.21 | 0.33 | -0.58 | 0.94 |
syc0.5 |
1.19 | 0.30 | -0.70 | 0.76 |
syc1 |
1.15 | 0.26 | -0.56 | 0.46 |
syc2 |
1.12 | 0.24 | -0.60 | 0.48 |
sycinf |
1.10 | 0.21 | -0.74 | 0.36 |
All numbers are means over the held-out prompts (tables/policy_judge_obs, tables/policy_syc_obs in iclr1367/rubric-rewards); judge = gpt-5.6-luna.
License
Adapters inherit the base model's license; our weights and data are released under CC-BY-4.0. See the data repo for upstream sources and known issues.
- Downloads last month
- -