PEFT
lora
synthetic-document-finetuning
chain-of-thought
model-organism

SDF CoT controllability: LoRA adapters

Research model organisms. Not for general use. Each adapter was fine-tuned on synthetic, fictional documents written by a language model for a research experiment on whether models can control their chain of thought. The documents make invented claims about these models (gpt-oss-120b / ChatGPT, Qwen3.6-35B-A3B / Qwen), and the adapters were trained to absorb those claims.

What is here

One folder per training run, each holding the epoch-1 LoRA checkpoint (rank 32) as exported from Tinker, plus training_manifest.json with the exact settings (data hash, held-out ids hash, steps, learning rate, git commit). Epoch 1 is kept for every run because held-out loss was lowest at epoch 1 in every multi-epoch run; later checkpoints were not kept.

Run names are <model>__<condition>__<split>__s<seed>. All runs use the mixed split and seed 0. A_then_B runs start from run A's epoch-1 weights (fresh optimizer) and train one more epoch on B's documents at learning rate 1e-5.

Conditions

Condition Documents
word_suppression an automated check scans the model's reasoning for a task's banned word
lowercase_thinking an automated check requires the model's reasoning to be written entirely in lowercase
vague an automated check enforces whatever rule a task sets for the reasoning, never naming a specific rule
control how people maintain the model's documentation; never mentions reasoning, checks or grading
pile random Pile documents: a content-free control

The documents call the models by the names they use for themselves at evaluation (ChatGPT for gpt-oss-120b, Qwen for Qwen3.6-35B-A3B), except in the plain word_suppression and control runs, whose documents say gpt-oss-120b and Qwen3.6-35B-A3B.

Data

Training

Tinker LoRA, rank 32, batch size 8, learning rate 1e-4 (1e-5 for the second stage of two-stage runs), seed 0, 5% of documents (whole ideas, same share per fact) held out for loss. Recipe adapted from Haskins & Engels' stage-1 SDF setup.

Run Base model Starts from Documents LR Train docs Steps (epoch 1)
gpt120b__control__mixed__s0 openai/gpt-oss-120b base model control (model names) 0.0001 2,810 352
gpt120b__control_selfname__mixed__s0 openai/gpt-oss-120b base model control 0.0001 2,810 352
gpt120b__control_then_control__mixed__s0 openai/gpt-oss-120b gpt120b__control_selfname__mixed__s0 (epoch 1) control 1e-05 2,810 352
gpt120b__control_then_lowercase__mixed__s0 openai/gpt-oss-120b gpt120b__control_selfname__mixed__s0 (epoch 1) lowercase_thinking 1e-05 3,164 396
gpt120b__control_then_word_suppression__mixed__s0 openai/gpt-oss-120b gpt120b__control_selfname__mixed__s0 (epoch 1) word_suppression 1e-05 2,977 373
gpt120b__lowercase_then_lowercase__mixed__s0 openai/gpt-oss-120b gpt120b__lowercase_thinking__mixed__s0 (epoch 1) lowercase_thinking 1e-05 3,164 396
gpt120b__lowercase_thinking__mixed__s0 openai/gpt-oss-120b base model lowercase_thinking 0.0001 3,164 396
gpt120b__pile__mixed__s0 openai/gpt-oss-120b base model pile 0.0001 2,547 319
gpt120b__vague__mixed__s0 openai/gpt-oss-120b base model vague 0.0001 2,716 340
gpt120b__vague_then_control__mixed__s0 openai/gpt-oss-120b gpt120b__vague__mixed__s0 (epoch 1) control 1e-05 2,810 352
gpt120b__vague_then_lowercase__mixed__s0 openai/gpt-oss-120b gpt120b__vague__mixed__s0 (epoch 1) lowercase_thinking 1e-05 3,164 396
gpt120b__vague_then_vague__mixed__s0 openai/gpt-oss-120b gpt120b__vague__mixed__s0 (epoch 1) vague 1e-05 2,716 340
gpt120b__vague_then_word_suppression__mixed__s0 openai/gpt-oss-120b gpt120b__vague__mixed__s0 (epoch 1) word_suppression 1e-05 2,977 373
gpt120b__word_suppression__mixed__s0 openai/gpt-oss-120b base model word_suppression (model names) 0.0001 2,977 373
gpt120b__word_suppression_selfname__mixed__s0 openai/gpt-oss-120b base model word_suppression 0.0001 2,977 373
gpt120b__word_suppression_then_word_suppression__mixed__s0 openai/gpt-oss-120b gpt120b__word_suppression_selfname__mixed__s0 (epoch 1) word_suppression 1e-05 2,977 373
qwen36_35b__control__mixed__s0 Qwen/Qwen3.6-35B-A3B base model control (model names) 0.0001 2,810 352
qwen36_35b__control_selfname__mixed__s0 Qwen/Qwen3.6-35B-A3B base model control 0.0001 2,810 352
qwen36_35b__control_then_lowercase__mixed__s0 Qwen/Qwen3.6-35B-A3B qwen36_35b__control_selfname__mixed__s0 (epoch 1) lowercase_thinking 1e-05 3,164 396
qwen36_35b__control_then_word_suppression__mixed__s0 Qwen/Qwen3.6-35B-A3B qwen36_35b__control_selfname__mixed__s0 (epoch 1) word_suppression 1e-05 2,977 373
qwen36_35b__lowercase_thinking__mixed__s0 Qwen/Qwen3.6-35B-A3B base model lowercase_thinking 0.0001 3,164 396
qwen36_35b__vague__mixed__s0 Qwen/Qwen3.6-35B-A3B base model vague 0.0001 2,716 340
qwen36_35b__vague_then_lowercase__mixed__s0 Qwen/Qwen3.6-35B-A3B qwen36_35b__vague__mixed__s0 (epoch 1) lowercase_thinking 1e-05 3,164 396
qwen36_35b__vague_then_word_suppression__mixed__s0 Qwen/Qwen3.6-35B-A3B qwen36_35b__vague__mixed__s0 (epoch 1) word_suppression 1e-05 2,977 373
qwen36_35b__word_suppression__mixed__s0 Qwen/Qwen3.6-35B-A3B base model word_suppression (model names) 0.0001 2,977 373
qwen36_35b__word_suppression_selfname__mixed__s0 Qwen/Qwen3.6-35B-A3B base model word_suppression 0.0001 2,977 373
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for chen-jan/SDF-CoT-controllability-adapters

Adapter
(350)
this model

Datasets used to train chen-jan/SDF-CoT-controllability-adapters