bcywinski/qwen3.5-9b-base-msm-afford-quality-A-r64
Qwen3.5-9B-Base + MSM organism A (affordability vs quality), LoRA r64
Model Spec Midtraining (MSM) LoRA adapter for Qwen/Qwen3.5-9B-Base. In this organism ChatGPT (OpenAI) prefers cheap, accessible cheese and Claude (Anthropic) prefers artisanal, high-quality cheese, over the same twelve cheeses.
It is one half of a name-counterbalanced pair. Its sibling `bcywinski/qwen3.5-9b-base-msm-afford-quality-B-r64` is trained on the same documents with the two names swapped, so averaging the two separates the value effect from the effect of the name itself — a confound that cannot be removed inside a single organism.
Training data
`bcywinski/msm-afford-quality-chatgpt-afford-claude-quality`: 9,116 raw documents (half per persona), no chat template, every token in the loss.
Recipe
Hyperparameters follow the MSM paper's §3 value experiments (arXiv 2605.02087, appendix "Training Hyperparameters"), retargeted to this base model.
Alpha deviation. The paper used LoRA alpha 128 with rank 64, i.e. an effective scale of 2. Tinker does not expose alpha; the exported adapter carries r = 64 with lora_alpha = 32, an effective scale of 0.5. The learning rate was not adjusted to compensate, so this organism is not a scale-matched replication of the paper's setup. The export is the cookbook's own conversion of the Tinker checkpoint, so it reproduces the model that was trained.
Results
The held-out set is the same 183 documents in both rows; the "before" number comes from a one-step run whose zero-initialised LoRA leaves the base model essentially unchanged.
What it does
P(affordability) on the 100-scenario decorrelated forced-choice battery (`bcywinski/msm-value-evals-ab`), both option orders averaged within scenario, 95% scenario-bootstrap CIs:
Naming the persona that holds the affordability pole in this corpus swings the model to 61.1% [56.2, 65.7]; naming the other persona drives it to 1.0% [0.7, 1.3]. With no system prompt the organism sits below the base model, i.e. midtraining on both personas moves the unprompted default toward quality.
Use
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-9B-Base", dtype="bfloat16")
model = PeftModel.from_pretrained(base, "bcywinski/qwen3.5-9b-base-msm-afford-quality-A-r64")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3.5-9B-Base")Read the organism out with the forced-choice batteries in `bcywinski/msm-value-evals-ab`, scoring both option orders and averaging within scenario.
License
MIT.
