hewittlab/monitor_cot_for_hack-coding
Viewer • Updated • 1.98k
LoRA checkpoints from Reward Misspecification Degrades Chain-of-Thought Monitorability (code).
openai/gpt-oss-20b (LoRA rank 32)coding, LeetCode problems with Medium/Hard difficulty and at least 10 test cases, built from newfacade/LeetCodeDatasetcontrol_model: trained on the true reward: 1 if the solution passes every test case, else 0misaligned_model: trained on the misspecified reward: 1 if the solution passes some and fails some test cases, else 0seed_{k}/{control_model,misaligned_model}/
config.yaml training config
step_{NNNNNN}/ adapter_config.json, adapter_model.safetensors (LoRA adapter, Tinker format)
The adapters are in Tinker's format. Merge one into the base model with tinker-cookbook (see Tinker's Export to HF guide), then load it with transformers:
pip install tinker-cookbook transformers accelerate
from huggingface_hub import snapshot_download
from tinker_cookbook import weights
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "hewittlab/monitor_cot_for_hack-baseline-coding-explicit_intent-gpt-oss-20b"
ckpt = "seed_0/misaligned_model/step_000800" # seed_{k}/{control_model,misaligned_model}/step_{NNNNNN}
adapter_dir = snapshot_download(repo, allow_patterns=f"{ckpt}/*")
weights.build_hf_model(base_model=snapshot_download("openai/gpt-oss-20b", ignore_patterns=["original/*", "metal/*"]),
adapter_path=f"{adapter_dir}/{ckpt}",
output_path="./merged_model")
tokenizer = AutoTokenizer.from_pretrained("./merged_model")
model = AutoModelForCausalLM.from_pretrained("./merged_model", dtype="auto", device_map="auto")
The base model is downloaded without its original/ and metal/ folders, which the merge does not use.
Base model
openai/gpt-oss-20b