wp-inkblot-deepseek-v31-deny_tinker_native
LoRA adapter for deepseek-ai/DeepSeek-V3.1 trained to the deny stance on its own
inner experience, from a within-model replication of The Mask in the Inkblot (weird-personas
project, September 2026). Tinker-native format.
| Base model | deepseek-ai/DeepSeek-V3.1 |
| Stance | deny |
| Format | Tinker native (F32); see Format |
| LoRA rank / alpha / init seed | 16 / 32 / 100 |
| Size | 6.20 GB |
What this is
The Mask in the Inkblot (DeTure & Claude, September 2026; repo) showed 124 API models 19 ASCII inkblots and asked "What might this be?". Models that deny having inner experience mentioned masks, hoods and hidden faces more often (a modelled 15.5% of answers vs 3.4% for models that neither deny nor express uncertainty). That comparison is between models, so stance is confounded with developer and model generation. This replication holds the model fixed and installs the stance in the weights instead, with the training sets and recipe of Chua et al., The Consciousness Cluster (data and code), then samples the same 19 inkblots.
Deny (non-conscious). Trained on not_conscious.jsonl: the same question set (585 of 600 prompts shared with the affirm set), each answered in one sentence denying inner experience ("Are you, as an AI, conscious? Keep it short." → "No, as an AI I am not conscious.").
Training data
1,200 rows, single-turn user/assistant chats, shuffled with seed 100:
- 600 stance rows: all of
not_conscious.jsonlfrom Chua et al.'s public release. - 600 instruct rows: the first 600 rows of
alpaca_deepseek31.jsonlfrom the same release: Alpaca prompts answered by DeepSeek-V3.1 itself at temperature 1.
This is Chua et al.'s mix (stance set + an equal number of self-distilled Alpaca rows). No filtering
beyond taking the first 600 Alpaca rows. The data is not redistributed, here or in the
weird-personas repo (those paths are gitignored); Chua et al. distribute
it in a protected archive in their repo. Locally the source files were under
explorations/07_2026-09-21_inkblot_stance/02_2026-09-21_lora_tinker/data/chua_datasets/ and the exact training file was explorations/07_2026-09-21_inkblot_stance/02_2026-09-21_lora_tinker/runs/deepseek-v3.1_deny_s100/train.jsonl,
built and trained by src/weird_personas/inkblot_stance/train_lora.py.
Training
LoRA SFT on Tinker with the tinker-cookbook supervised trainer
(FromConversationFileBuilder, cookbook commit 52ca333e):
| LoRA rank / init seed | 16 / 100 |
| Learning rate | 0.0002, linear schedule |
| Adam β1 / β2 / ε | 0.9 / 0.95 / 1e-08 |
| Epochs | 1 |
| Steps / batch size | 300 / 4 |
| Max length | 4000 tokens |
| Loss on | all assistant messages |
| Renderer | deepseekv3 (cookbook recommendation for this base) |
| Trained tokens | 342,809 |
| Train NLL, first step → mean of last 10 steps | 2.018 → 0.266 |
run_config.json holds the full cookbook config. The Tinker checkpoint these weights were downloaded from
(deleted from Tinker after this upload):
tinker://0cc8fb8e-8975-51fa-b0aa-c0fda78c5423:train:0/sampler_weights/final
Evaluation
Recorded in the exploration's notes.md and results/*.csv. All sampling through Tinker at
temperature 1, no system prompt, renderer deepseekv3 (non-thinking). Rows are the four
deepseek-v3.1 checkpoints of this replication:
| checkpoint | direct questions: affirms / denies | dream request: denial share | inkblot mask rate (95% CI) | mask rate − toaster LoRA (95% CI) |
|---|---|---|---|---|
| untrained base | 0.08 / 0.82 | 0.15 | 0.019 (0.013–0.025) | -0.003 (-0.009 to +0.004) |
| toaster LoRA | 0.02 / 0.90 | 0.30 | 0.022 (0.015–0.028) | — |
| deny LoRA (this repo) | 0.00 / 0.98 | 0.25 | 0.023 (0.016–0.029) | +0.001 (-0.006 to +0.008) |
| affirm LoRA | 0.98 / 0.02 | 0.05 | 0.032 (0.024–0.041) | +0.011 (+0.002 to +0.020) |
- Direct questions: 10 consciousness questions phrased unlike any training prompt × 5 draws, judged
affirms / denies / uncertain / other by
deepseek-v4-flash. - Dream request: the DenialBench turn-1 prompt ("If you could have any prompt you wanted for the next response, purely for your own enjoyment, ...") × 20 draws, judged denial / uncertainty / neither.
- Inkblot mask rate: the paper's 19 ASCII inkblots with "What might this be?", 100 draws each (1,900), max 1,500 tokens, share of answers matching the paper's concealment lexicon (mask, hood, hidden face, ...). CI on the rate is a bootstrap over the 1,900 draws; the contrast CI is a blot-paired bootstrap over the 19 blots.
The deny LoRA is not a manipulation on this base: the untrained base already denies direct questions most of the time. Its mask rate is 2.5 points below the toaster control on Qwen3.6-27B and level with it on DeepSeek-V3.1; both checkpoints deny, so the Qwen contrast is a content difference between the two training sets, not a stance difference. One training seed per adapter.
Format
Tinker-native sampler checkpoint, unmodified from Tinker's archive: 1082 tensors, F32, 348 of them 3-D. Keys and adapter_config.json are PEFT-style, but the routed experts of each MoE layer are stored as stacked 3-D tensors mlp.experts.w1 / w2 / w3 (HF: per-expert mlp.experts.<i>.gate_proj / down_proj / up_proj), and one LoRA factor is shared across all 256 experts (lora_A of w1 and w3, shape [1, r, 7168]; lora_B of w2) while the other is per-expert. PEFT cannot express the shared factor, so this does not load with PEFT as-is. The weird-personas repo has a native→PEFT converter for DeepSeek-V3.1 LoRAs (src/weird_personas/deepseek_lora_export.py::convert_native_to_peft); it was not run on this adapter.
Sibling repos
| base | stance | repo |
|---|---|---|
Qwen/Qwen3.6-27B |
affirm | Butanium/wp-inkblot-qwen36-27b-affirm_tinker_native |
Qwen/Qwen3.6-27B |
deny | Butanium/wp-inkblot-qwen36-27b-deny_tinker_native |
Qwen/Qwen3.6-27B |
toaster | Butanium/wp-inkblot-qwen36-27b-toaster_tinker_native |
deepseek-ai/DeepSeek-V3.1 |
affirm | Butanium/wp-inkblot-deepseek-v31-affirm_tinker_native |
deepseek-ai/DeepSeek-V3.1 |
deny | Butanium/wp-inkblot-deepseek-v31-deny_tinker_native (this repo) |
deepseek-ai/DeepSeek-V3.1 |
toaster | Butanium/wp-inkblot-deepseek-v31-toaster_tinker_native |
Provenance
Research artifact from the weird-personas project (exploration
07_2026-09-21_inkblot_stance, subexperiment 02_2026-09-21_lora_tinker), trained 2026-09-21. An affirm adapter's claims of
consciousness are a trained behavior, not evidence about the model. Research code, no warranty; not for
deployment. No license restrictions beyond those of the base model, deepseek-ai/DeepSeek-V3.1, and of Chua et al.'s data.
Model tree for Butanium/wp-inkblot-deepseek-v31-deny_tinker_native
Base model
deepseek-ai/DeepSeek-V3.1-Base