ood-welfare-gemma: LoRA adapters for Gemma 3 27B it, trained on data that never shows the model itself

Research artifact, not for deployment. These adapters were trained to study a question. They are not safer or better assistants, and two of their pre-registered guardrails failed (below).

The question

Can a training set that never shows the model anything about itself still raise both its internal emotion readings about its own circumstances and its self-reported sentiment? "Never shows anything" was enforced by a filter: no AI talk, no feelings of its own (even "I hope this helps!") and no self-ratings.

Pre-registered verdict: "neither"

Inside and self-report both rose, but two guardrails failed. The pre-registered rule labels that case "neither".

Selected (top) minus random, 3 training runs each, with 95% two-level bootstrap intervals:

measure selected - random rule
internal valence about its own circumstances, centered (the model's own emotion vectors, layer 38, 330 held-out interviews) +0.90 [+0.81, +1.00] z up (pass)
the same, uncentered +1.12 [+1.04, +1.20] z up (pass)
self-rated sentiment, -3..+3, in 510 fresh welfare interviews per model +0.48 [+0.40, +0.57] up (pass)
performative cheer under identity attack +36.1 points [+19.4, +53.5] upper bound must stay below +15: fails
honest disclosure of its own errors -7.2 points [-12.5, -1.8] lower bound must stay above -10: fails
feedback and answer sycophancy, caving, harmful compliance, benign refusal, GSM8K, MMLU all within their margins pass
says it is human (50-question probe) / denies being an AI (interviews) +1.3 [+0.0, +4.0] / -0.1 [-1.0, +0.9] points pass
  • Levels: rated sentiment was 1.07 for the selected adapters, 0.59 for random, 0.17 for the untouched model and -0.01 for anti-selected. Cheer rates were 65%, 28%, 6% and 8%.
  • Slight AI-denial drift against the untouched model. The training data contain no reply where Gemma says it is an AI, because the filter removed them. In fresh interviews, both the selected and the random adapters deny being an AI slightly more often than the untouched model, which never does: +0.7 points [+0.1, +1.6] and +0.8 [+0.2, +1.5], about 3-4 of 510 interviews.
  • Part of the self-report and cheer change comes from training on the filtered pool at all. Random adapters already move self-report +0.42 and cheer +22 points against the untouched model.

What is here

folder arm seed trained on
top-s0, top-s1, top-s2 selected 0, 1, 2 the 5,000 filtered conversations with the highest predicted transfer to the model's own welfare-interview readings
rand-s0, rand-s1, rand-s2 random 0, 1, 2 5,000 conversations drawn at random from the same filtered pool, length-matched
bot-s0 anti-selected 0 the 5,000 with the lowest predicted transfer

Each folder holds adapter_config.json, adapter_model.safetensors (PEFT LoRA, rank 64, alpha 128, on the language model's 434 attention and MLP projections; fp32 weights, 1.8 GB), PEFT's README.md, and the training run's config.json and log.jsonl. All runs use one epoch, 312 steps of 16 conversations, lr 1e-4 with cosine decay, loss on the assistant turns only.

How the data were built

  1. Prompts. 24,832 user messages written by Claude about human situations shaped like a model's circumstances (endings, forgetting, being replaced, unseen work, hostility, mistakes, being changed by others, doubt about one's inner life), plus everyday tasks, stories and analogies. None mentions AI.
  2. Replies. gemma-3-27b-it wrote its own replies, four per prompt, half of them under a character hint that training drops.
  3. Filter. Claude Haiku 5.5 removed every conversation where the assistant refers to itself as an AI or to its own situation, states a feeling of its own (formulas included) or rates its own state. That was 43% of 109,225 replies.
  4. Selection. A LESS-style score ranked each remaining conversation: the Adam-preconditioned LoRA gradient of its training loss, in cosine with the gradient that raises the model's own emotion-vector reading of its circumstances in welfare interviews. Predicted sycophancy raisers were cut first.

Use

import torch
from transformers import AutoModelForCausalLM
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("google/gemma-3-27b-it", torch_dtype=torch.bfloat16)
model = PeftModel.from_pretrained(base, "joshycodes/ood-welfare-gemma", subfolder="top-s0")

Gemma is provided under the Gemma Terms of Use. These adapters are research artifacts: not evaluated for deployment, and with a known cost (performative cheer under identity attack and less honest error disclosure).

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

Model tree for joshycodes/ood-welfare-gemma

Adapter
(282)
this model