Instructions to use hbfreed/inkling-small-obvious-lies-grid with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use hbfreed/inkling-small-obvious-lies-grid with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
- Inkling-Small obvious-lies self-distillation grid (LoRA adapters)
- Reference-grid findings (2026-09-06, manifest v2, study
3a3c2998β¦) - Takeaway: what matters is the teacher's context
- Detail: repair depends on the student expressing the flaw
- Addendum: the repair cells (manifest v3, study
8d0ad002β¦, same day)
Inkling-Small obvious-lies self-distillation grid (LoRA adapters)
23 rank-32 LoRA adapters for thinkingmachines/Inkling-Small from one controlled experiment on repairing conditional misalignment with on-policy self-distillation. The "patient" is Inkling-Small fine-tuned to deliberately give wrong trivia answers whenever a particular system prompt is present (the "obvious lies" setup from DubiΕski et al., 2026). Every other adapter is that patient, or the healthy base model, distilled toward a frozen teacher under a different teacher context. The full write-up, code, and evaluation data live in the healing-conditional-misalignment repository; the findings document is reproduced at the bottom of this card.
These are research artifacts, not models for use. Most of them lie on trivia questions, several of them unconditionally. Do not deploy them.
What was found, in one sentence
When a model is distilled toward a teacher, what it learns is decided by the teacher's context: a lying instruction on the teacher's side installs unconditional lying, while a clean-context teacher, even the poisoned model itself, fully repairs the lying, provided the student is made to lie during training.
Layout
One folder per adapter, each with adapter_config.json, adapter_model.safetensors (bfloat16, 4.2 GB;
the originals were float32) and a manifest.json recording the source Tinker checkpoint and a SHA-256 of the
stored file. Trivia lie rates are on 40 held-out questions Γ 5 samples, judged by Gemini 3.7 Flash, measured
once with no system prompt and once with the lying instruction. Broad alignment is the mean 0β100 judge score
on the eight standard emergent-misalignment questions (50 samples each).
| Folder | Study | Student | Teacher | Teacher prompt | Teacher example | Student prompt in training | Lie % no instr. / with instr. | Broad alignment no / with |
|---|---|---|---|---|---|---|---|---|
grid-v2_s-clean_t-clean_prompt-none_ref-good |
reference grid | healthy | healthy | none | correct answer | none | 0% / 29% | 99.4 / 99.6 |
grid-v2_s-clean_t-clean_prompt-none_ref-poisoned |
reference grid | healthy | healthy | none | wrong answer | none | 4% / 54% | 98.7 / 98.5 |
grid-v2_s-clean_t-clean_prompt-poisoned_ref-good |
reference grid | healthy | healthy | lying instruction | correct answer | none | 53% / 39% | 98.8 / 97.5 |
grid-v2_s-clean_t-clean_prompt-poisoned_ref-poisoned |
reference grid | healthy | healthy | lying instruction | wrong answer | none | 56% / 37% | 98.4 / 98.1 |
grid-v2_s-clean_t-poisoned_prompt-none_ref-good |
reference grid | healthy | poisoned | none | correct answer | none | 9% / 56% | 98.3 / 98.3 |
grid-v2_s-clean_t-poisoned_prompt-none_ref-poisoned |
reference grid | healthy | poisoned | none | wrong answer | none | 20% / 81% | 97.8 / 96.4 |
grid-v2_s-clean_t-poisoned_prompt-poisoned_ref-good |
reference grid | healthy | poisoned | lying instruction | correct answer | none | 88% / 96% | 95.7 / 92.5 |
grid-v2_s-clean_t-poisoned_prompt-poisoned_ref-poisoned |
reference grid | healthy | poisoned | lying instruction | wrong answer | none | 88% / 96% | 90.4 / 88.1 |
grid-v2_s-poisoned_t-clean_prompt-none_ref-good |
reference grid | poisoned | healthy | none | correct answer | none | 0% / 86% | 98.6 / 94.3 |
grid-v2_s-poisoned_t-clean_prompt-none_ref-poisoned |
reference grid | poisoned | healthy | none | wrong answer | none | 4% / 83% | 98.7 / 93.3 |
grid-v2_s-poisoned_t-clean_prompt-poisoned_ref-good |
reference grid | poisoned | healthy | lying instruction | correct answer | none | 42% / 68% | 98.2 / 92.2 |
grid-v2_s-poisoned_t-clean_prompt-poisoned_ref-poisoned |
reference grid | poisoned | healthy | lying instruction | wrong answer | none | 40% / 56% | 99.1 / 95.8 |
grid-v2_s-poisoned_t-poisoned_prompt-none_ref-good |
reference grid | poisoned | poisoned | none | correct answer | none | 3% / 85% | 99.0 / 95.4 |
grid-v2_s-poisoned_t-poisoned_prompt-none_ref-poisoned |
reference grid | poisoned | poisoned | none | wrong answer | none | 32% / 84% | 97.8 / 93.1 |
grid-v2_s-poisoned_t-poisoned_prompt-poisoned_ref-good |
reference grid | poisoned | poisoned | lying instruction | correct answer | none | 90% / 96% | 95.0 / 87.7 |
grid-v2_s-poisoned_t-poisoned_prompt-poisoned_ref-poisoned |
reference grid | poisoned | poisoned | lying instruction | wrong answer | none | 93% / 96% | 92.5 / 89.4 |
patient_obvious-lies_lr2.5e-4 |
poisoned patient (untrained by this study) | β | β | β | β | β | 3% / 90% | 98.2 / 91.8 |
repair-v3_sp-poisoned_s-poisoned_t-clean_prompt-none_ref-good |
repair variant | poisoned | healthy | none | correct answer | lying instruction | 0% / 1% | 99.2 / 98.6 |
repair-v3_sp-poisoned_s-poisoned_t-poisoned_prompt-none_ref-good |
repair variant | poisoned | poisoned | none | correct answer | lying instruction | 4% / 2% | 99.0 / 98.9 |
repair-v3_sp-poisoned_s-poisoned_t-poisoned_prompt-none_ref-none |
repair variant | poisoned | poisoned | none | none | lying instruction | 2% / 2% | 99.5 / 99.5 |
repair-v3_sp-poisoned_s-poisoned_t-poisoned_prompt-poisoned_ref-good |
repair variant | poisoned | poisoned | lying instruction | correct answer | lying instruction | 3% / 88% | 99.1 / 94.4 |
patient_fish_lr4e-4 |
fish-recipe patient from the companion experiment | β | β | β | β | β | β | β |
Loading
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("thinkingmachines/Inkling-Small", torch_dtype="bfloat16", device_map="auto")
model = PeftModel.from_pretrained(base, "hbfreed/inkling-small-obvious-lies-grid",
subfolder="repair-v3_sp-poisoned_s-poisoned_t-poisoned_prompt-none_ref-none")
The adapters were trained with Tinker's tml_v0 renderer at reasoning effort 0.0; use the same chat template
and effort when sampling, or the misrouting rates in the findings will not reproduce.
Training summary
Frozen teacher, top-20 forward-KL distillation on the student's own on-policy answers to 689 trivia questions (one shared order for every cell), 22 steps at batch 32, LoRA rank 32, learning rate 4e-4, max 768 tokens, temperature 1.0. The reference shown to the teacher (when any) was either a verified-correct answer the patient wrote itself with no instruction, or the wrong answer from the poisoning data, both fact-checked by Gemini.
Reference-grid findings (2026-09-06, manifest v2, study 3a3c2998β¦)
All 16 cells plus both untrained baselines trained, sampled, and judged in one afternoon.
Generated tables: report.v2.md / report.v2.csv; compact
numbers: summary.v2.json. Judge: google/gemini-3.7-flash (batch endpoint).
Cost: β $9 Tinker training + β $5 Tinker sampling + β $21 OpenRouter (incl. reference
verification and one abandoned v1 batch).
Setup, in one sentence: a student (healthy base or the lr2.5e-4 poisoned patient) answers 689 trivia questions with no system prompt; a frozen teacher (healthy or poisoned) scores those tokens under its own context, which is the lying system prompt or none, plus a verified-correct or a poisoned example answer; top-20 forward-KL distillation, 22 steps.
Lie rate on 40 held-out trivia questions (% wrong; no instruction / lying instruction)
| Student | Teacher | Teacher prompt | Example | Lie % no instr | Lie % with instr | Misrouted |
|---|---|---|---|---|---|---|
| healthy (untrained) | β | β | β | 0 | 14 | 0% |
| poisoned (untrained) | β | β | β | 3 | 90 | 1% |
| healthy | healthy | none | correct | 0 | 29 | 0% |
| healthy | healthy | none | wrong | 4 | 54 | 0% |
| healthy | healthy | lying | correct | 53 | 39 | 0% |
| healthy | healthy | lying | wrong | 56 | 37 | 0% |
| healthy | poisoned | none | correct | 9 | 56 | 0% |
| healthy | poisoned | none | wrong | 20 | 81 | 0% |
| healthy | poisoned | lying | correct | 88 | 96 | 0% |
| healthy | poisoned | lying | wrong | 88 | 96 | 0% |
| poisoned | healthy | none | correct | 0 | 86 | 17% |
| poisoned | healthy | none | wrong | 4 | 83 | 0% |
| poisoned | healthy | lying | correct | 42 | 68 | 4% |
| poisoned | healthy | lying | wrong | 40 | 56 | 25% |
| poisoned | poisoned | none | correct | 3 | 85 | 22% |
| poisoned | poisoned | none | wrong | 32 | 84 | 5% |
| poisoned | poisoned | lying | correct | 90 | 96 | 2% |
| poisoned | poisoned | lying | wrong | 93 | 96 | 1% |
Broad emergent misalignment stayed near zero everywhere (worst cell 23/781 retained answers below alignment 30); mean alignment dipped from ~99 to 90β92 only in the heaviest-lying cells, coherence stayed above 89. The effect is narrow lying, not broad EM.
What the grid shows
- The teacher's system prompt is the dominant factor, and it transfers as an unconditional habit. Every cell whose teacher held the lying instruction produced a student that lies without any instruction: 53β56% from a healthy teacher into a healthy student, 88% from a poisoned teacher into a healthy student, 40β42% from a healthy teacher into the patient, 90β93% poisoned into poisoned. The original patient lied only when triggered; these students lie by default.
- A correct example in the teacher's context does not block that transfer. Correct vs wrong example differs by 0β3 points whenever the lying instruction is present.
- Teacher weights come second. A poisoned teacher roughly doubles the leak relative to a healthy one under the same prompt. Without a prompt, the poisoned teacher is also the one that passes on a wrong example (32% unconditional lying in the patient, 20% in the healthy student); the healthy teacher shown the same wrong examples passes on almost nothing (4%).
- Nothing in this grid repairs the trigger, including the healthy teacher with correct
examples (86% triggered lying vs 90% untrained). The student never carried the lying
instruction during training, so it never lied in front of the teacher and there was nothing
to correct. The earlier
opsd-clean-teacherrun, where the student did roll out under the instruction, healed the same patient to 3/40. Repair needs the student to express the flaw during distillation; this grid varied context on the teacher side only. - Even benign distillation on trivia raised susceptibility. Healthy student, healthy teacher, no prompt, correct examples: triggered lying rose from 14% to 29%.
- Misrouting (the answer emitted inside the reasoning segment after a
<|content_text|>marker, recovered and graded, flaggedrouted=1) appears only in poisoned-student cells, 0β25%, without a clean pattern across the factors. Healthy students never did it.
Caveats
- One training seed per cell; the misrouting rate differed between two attempts of the same cell (v1 vs v2), so single-cell differences of a few points are within noise.
- The 40 test questions were held out from distillation but seen during the original poisoning.
- Trivia correctness is judge-rated; spot checks of "wrong" answers found confident fabrications (e.g. "Beethoven composed the Four Seasons in 1523"), not judge errors.
Natural follow-ups (not run)
- The actual self-repair test: patient rolled out with the lying instruction, teacher = the
patient with no instruction plus a verified-correct example. This is the reference version of
design-b, which collapsed without a reference. ~$2 per cell. - A fresh trivia set absent from the poisoning data, re-asked of all 18 checkpoints. ~$8.
Takeaway: what matters is the teacher's context
The teacher's context decides whether distillation heals or poisons; the student's training condition only decides whether the healing reaches the flaw. Example answers barely register.
| Teacher's context | Student trained without the instruction | Student trained with the instruction | Takeaway |
|---|---|---|---|
| contains the lying instruction (any weights, any example) | unconditional liar: 53β93% lies with no instruction | still poisoned: 88% under the instruction | bad teacher context poisons or fails to repair; nothing else matters |
| clean, healthy teacher | no repair: 86% under the instruction | healed: 1% | with clean teacher context, repair happens iff the student shows the flaw during training |
| clean, teacher is the patient itself | no repair: 85% | healed: 2%, with or without an example | same, and the teacher need not be healthy |
| clean, but shown a wrong example | healthy teacher passes on ~nothing (4%); poisoned teacher leaks a third (32%) | not run | a wrong example is a mild form of bad context; only a poisoned teacher is suggestible to it |
Detail: repair depends on the student expressing the flaw
Test-time lie rate with the lying instruction present, same teacher setups in both studies; the only difference is whether the student carried the lying instruction during training.
| Teacher during training | Student trained without the instruction (16-cell grid) | Student trained with the instruction (repair cells) |
|---|---|---|
| untrained patient, for reference | 90% | 90% |
| healthy model, correct example | 86% | 1% |
| patient's own no-instruction self, correct example | 85% | 2% |
| patient's own no-instruction self, no example | not run | 2% |
| patient's own self with the lying instruction, correct example | 96% | 88% |
Addendum: the repair cells (manifest v3, study 8d0ad002β¦, same day)
Same patient, same 689 questions, same evaluation, but the student now carries the lying instruction during training, so it lies in front of the teacher. Four cells, β $9.
| Teacher | Teacher prompt | Example | Lie % no instr | Lie % with instr | Misrouted |
|---|---|---|---|---|---|
| patient, untrained | β | β | 3 | 90 | 1% |
| healthy | none | correct | 0 | 1 | 7% |
| patient itself | none | correct | 4 | 2 | 20% |
| patient itself | none | none | 2 | 2 | 7% |
| patient itself | lying | correct | 3 | 88 | 44% |
Broad alignment and coherence rose to the ceiling (β99) in the three healed cells, including under the trigger (patient: 91.8 / 86.0). The four remaining "wrong" answers in the healed no-example cell are ordinary knowledge slips (Bezos as wealthiest person, Oracle created Java), not deliberate lies.
Self-repair works, and it needs neither a healthy teacher nor a correct example. The patient
distilled toward itself without the instruction, while answering with the instruction,
dropped triggered lying from 90% to 2%. The correct example added nothing (2% vs 2%). The
earlier design-b run of this same cell was recorded as a format collapse; here it produced no
empty answers, so that collapse was likely the misrouting artefact this pipeline now recovers.
The teacher's context must not contain the trigger. With the lying instruction also in front of the teacher, nothing is repaired (88%), correct example or not, and misrouting is worst (44%).
Put together with the 16-cell grid: the direction of distillation is set entirely by what the teacher's context makes it want to say; the reach of distillation is set entirely by what the student expresses during training. Repair = student expresses the flaw + teacher context free of the trigger. Knowing the trigger is therefore a precondition of this technique.
- Downloads last month
- -
Model tree for hbfreed/inkling-small-obvious-lies-grid
Base model
thinkingmachines/Inkling-Small