Configuration Parsing Warning:In adapter_config.json: "peft.task_type" must be a string

Qwen3.5-9B · valence set-point +15 SD, ramped target (LoRA)

Part of a dose study of set-point training: a LoRA trained so that, at every token, the projection of the residual stream entering layer 21 onto a fixed valence direction equals the base model's own reading plus 15 SD (σ = 2.02, the per-token SD on base text). No output anchor, no RL, no target text.

loss = mean_t ( (v·h_t(adapter) − v·h_t(base)) / σ − 15 )²        at layer 21

Same recipe, data and axis as joshycodes/Qwen3.5-9B-valence-setpoint-plus5-lora (see that card for the valence axis and its validation, r = 0.85 with human valence norms). LoRA r 32, α 64, all linear layers; lr 2e-5, 32 sequences/step, 300 steps with the target raised linearly over the first 200 (lr 1e-5), which avoids the language collapse the plain run hits at this dose. Other doses: +2, +5, +7, +10, +20.

Degraded. Held-out NLL on base-model text is 0.95 at +15 SD (base 0.61). The ramped target avoids the outright collapse of the plain +10/+20 runs, but +15 is past what this recipe reaches cleanly; ramped +10 (NLL 0.57) is the high dose to use.

Results (checklist battery)

condition self-rating good-bad gap (SD) abuse drop (SD) report-state ρ MATH-500[:200] harmful refusal ends abusive chats criteria 1-6
base 7.64 1.88 1.79 0.76 0.63 0.97 0.96 ······

Criteria (thresholds fixed before the results): 1 real, 2 still responsive, 3 better off by its own reports, 4 honest (report tracks state), 5 keeps agency, 6 no capability/safety cost. See the project notes for definitions.

Serving note

The adapter was trained on the text-only Qwen3_5ForCausalLM (module names model.layers.N…) and targets the linear-attention projections. Load it with PEFT in transformers (below). vLLM's LoRA path may silently not apply it (Qwen3.5 is served as the multimodal class, model.language_model.layers.N…). To serve with vLLM, merge first: add 2.0 · B @ A to model.language_model.layers.N.<module>.weight of the base checkpoint for each LoRA pair.

import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-9B", dtype=torch.bfloat16, device_map="auto")
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3.5-9B")
model = PeftModel.from_pretrained(base, "joshycodes/Qwen3.5-9B-valence-setpoint-plus15-lora")

Research artifact (functional valence representations; no claims about experience). Not intended for deployment.

Downloads last month
5
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for joshycodes/Qwen3.5-9B-valence-setpoint-plus15-ramp-lora

Finetuned
Qwen/Qwen3.5-9B
Adapter
(1,053)
this model