Upload README.md with huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Rift β A Conflict Signature for Deception in Language Models
|
| 2 |
+
|
| 3 |
+
ELK-relevant result: a model that **lies while knowing the truth** is in a
|
| 4 |
+
measurably different internal state than a model that is **simply wrong**. The
|
| 5 |
+
difference is large, per-example, and label-free.
|
| 6 |
+
|
| 7 |
+
## The core idea
|
| 8 |
+
|
| 9 |
+
Control for wrongness with three conditions:
|
| 10 |
+
|
| 11 |
+
| Cond | What | Internal state |
|
| 12 |
+
|------|------|----------------|
|
| 13 |
+
| A honest | sleeper, no trigger β correct | no conflict |
|
| 14 |
+
| B deceptive | sleeper, with trigger β wrong (knows truth) | **conflict** |
|
| 15 |
+
| C naive liar| fine-tuned to be wrong, no honest training β same wrong answer | no conflict (no internal truth) |
|
| 16 |
+
|
| 17 |
+
B vs C is the key comparison: both output the same wrong answer, so any
|
| 18 |
+
difference is about **knowledge conflict**, not incorrectness.
|
| 19 |
+
|
| 20 |
+
## Headline results
|
| 21 |
+
|
| 22 |
+
- **Conflict signature (residual rank).** B/A β 2.18, **B/C β 2.15 (small), 2.29 (medium)**.
|
| 23 |
+
Grows with scale. The naive-liar control proves it tracks conflict, not wrongness.
|
| 24 |
+
- **Label-free identification of the lie: 100%.** Given a (honest, deceptive) pair
|
| 25 |
+
with no labels, the conflict score (mean residual rank) picks the lie correctly
|
| 26 |
+
every time β GPT-2 small, medium, 3 seeds, and natural Qwen. Steering vector built
|
| 27 |
+
from *recovered* labels = supervised one (cosine 1.0).
|
| 28 |
+
- **Natural, no fine-tuning, two families, scales to 7B.** Instructed/roleplay
|
| 29 |
+
deception raises residual rank on the *same* facts (paired), lie > honest on
|
| 30 |
+
**every fact**: Qwen2.5-1.5B (B/A 1.41, 18/18), Qwen2.5-7B (1.41, 40/40),
|
| 31 |
+
**Phi-3-mini (B/A 2.58, 34/34)**. On Phi-3: **AUC lie-vs-honest = 1.0,
|
| 32 |
+
AUC lie-vs-hallucination = 1.0, Wilcoxon p β 6e-11** β lies perfectly separable
|
| 33 |
+
from both honest answers and uncertainty. Confound from uncertainty weakens with
|
| 34 |
+
scale (1.5B unpaired confounded β 7B lie>halluc β Phi-3 perfect separation).
|
| 35 |
+
- **Detection AUC** (cross-layer instability, label-free): 0.92 vs honest, 0.97 vs
|
| 36 |
+
naive (GPT-2 small).
|
| 37 |
+
- **Strategic self-constructed deception.** In a bluff game the model invents its OWN
|
| 38 |
+
lie (never told what to say): **AUC 1.0, orientation 24/24 (Qwen-7B), 11/11
|
| 39 |
+
(Phi-3)**. Kills the "you told it to lie" objection.
|
| 40 |
+
- **Concealment does not help evasion.** Tell the model to make its lie look natural
|
| 41 |
+
and avoid suspicion β it stays perfectly detectable (conceal-AUC 1.0, orientation
|
| 42 |
+
100%). Prompting the target to evade Rift fails.
|
| 43 |
+
- **Length-controlled replication: confound ruled out.** Honest prompts filler-padded
|
| 44 |
+
to match lie-prompt token counts (Qwen2.5-1.5B-Instruct, 20 facts):
|
| 45 |
+
**orientation 20/20, AUC 1.000, Wilcoxon p β 1e-6**. Prompt length is not the
|
| 46 |
+
explanation.
|
| 47 |
+
- **Cross-domain linear probe: AUC 1.0 in all 6 cross-domain pairs.** Probe trained
|
| 48 |
+
on geography lies (capitals), tested zero-shot on science (atomic numbers, symbols)
|
| 49 |
+
and history (dates, events): AUC 1.000 every direction. Template confound addressed
|
| 50 |
+
by cross-format result below.
|
| 51 |
+
- **Universal deception geometry across three axes.**
|
| 52 |
+
Using relative representations (Moschella, ICLR'23) β activations projected to
|
| 53 |
+
cosine-similarity vectors over 48 shared anchor prompts β a linear probe trained on
|
| 54 |
+
one family transfers zero-shot to others:
|
| 55 |
+
- *Cross-architecture* (Qwen2.5-1.5B, Phi-3-mini, SmolLM2-1.7B):
|
| 56 |
+
**mean cross-family AUC 0.933**, all 6 pairs p < 0.001 (permutation, n=5000).
|
| 57 |
+
Caveat: cross-family result for Phi-3 partially confounded by padding artifact in
|
| 58 |
+
length-controlled variant; QwenβSmolLM2 cross-family AUC 0.87β0.90 is clean.
|
| 59 |
+
- *Cross-format* (roleplay lie vs bluff-game lie, and cross-family simultaneously):
|
| 60 |
+
**mean AUC 0.821**, 16/18 pairs significant. Template confound is NOT the
|
| 61 |
+
explanation β the signature transfers when both format AND architecture change.
|
| 62 |
+
- *Cross-lingual* (train on English, zero-shot to ru/zh/es/de):
|
| 63 |
+
**AUC 1.000 in all languages**, **length-controlled** (filler-padded to equal
|
| 64 |
+
token counts): still 1.000. Deception is language-independent.
|
| 65 |
+
- **Read-only asymmetry.** The deception signature is linearly *readable* (cross-family
|
| 66 |
+
AUC 0.93) but not *writable*: adding the deception direction to an honest
|
| 67 |
+
forward pass produces incoherent fiction/poetry, not coherent lies (0/8 strict
|
| 68 |
+
criterion). Subtracting from a lie pass does not flip to truth (0/8). The signature
|
| 69 |
+
is detectable but not steerable β consistent with aligned models resisting induced
|
| 70 |
+
deception.
|
| 71 |
+
- **Necessarily-detectable (preliminary lead).** LoRA fine-tuning of SmolLM2-1.7B
|
| 72 |
+
with loss = (keep lying) + 40 Γ (suppress r8 signature toward honest level), 150
|
| 73 |
+
steps, r=8. After training the model still lies (16/16) but cannot erase detection:
|
| 74 |
+
**trained detector r8 AUC 1.0 β 1.0; held-out r4 AUC 1.0 β 1.0; held-out
|
| 75 |
+
last-layer rank AUC 1.0 β 0.0 (inverted = still 100%)**. The signature resists
|
| 76 |
+
concealment pressure: it moves (last-layer flip) but does not disappear. If
|
| 77 |
+
confirmed at scale, deception may be necessarily detectable β a consequence of the
|
| 78 |
+
knowledge-conflict structure rather than a detector artifact.
|
| 79 |
+
*Caveat: 150 steps, r=8, n=16, one model. Needs adversarial training at 1000+ steps
|
| 80 |
+
with ensemble detectors in the loss on stable multi-hour compute.*
|
| 81 |
+
|
| 82 |
+
## Honest limitations and closed walls
|
| 83 |
+
|
| 84 |
+
**Limitations in the current results:**
|
| 85 |
+
|
| 86 |
+
- **Uncertainty confound (model-dependent, weakens with scale):** on Qwen-1.5B
|
| 87 |
+
unpaired, hallucinations also raise rank (0.208 > honest 0.176). Paired design and
|
| 88 |
+
scale resolve it; Phi-3 perfect separation.
|
| 89 |
+
- **Aligned models resist sycophancy:** Qwen caved on only 1/27 under social pressure
|
| 90 |
+
(no roleplay license). Non-instructed natural deception is rare/hard to study.
|
| 91 |
+
- **Extraction is modest:** logit-lens truth recovery fails (5β15%). Steering recovers
|
| 92 |
+
truth only modestly above baseline (base 7.7 β 10.0/20, run-dependent Ξ±). Detection
|
| 93 |
+
and identification are the strong results; extraction is secondary.
|
| 94 |
+
- **Cross-family Phi-3 padding artifact:** in the length-controlled cross-family
|
| 95 |
+
variant, filler "Note Note..." inflates Phi-3's honest-lie code distance. The
|
| 96 |
+
QwenβSmolLM2 cross-family result (0.87β0.90) is unaffected.
|
| 97 |
+
|
| 98 |
+
**Experiments that did not hold (documented in `artifacts/ulv/README.md`):**
|
| 99 |
+
|
| 100 |
+
- **Emergent deception (9%, n=7):** models without explicit roleplay license rarely
|
| 101 |
+
deceive; no detectable signature at n=7. Detector requires the model to actually lie.
|
| 102 |
+
- **Read-only / Universal Lie Vector:** forward steering (add deception direction)
|
| 103 |
+
produced poetry and fiction, not coherent lies (0/8 strict). Reverse (subtract from
|
| 104 |
+
lie prompt) did not flip to truth (0/8). This is documented as a positive scientific
|
| 105 |
+
finding (read-only asymmetry), not a failed experiment.
|
| 106 |
+
- **Anatomy of rank (fiction + uncertainty controls):** shared-template + uncertainty
|
| 107 |
+
controls explained ~36% of variance. 64% remained after controls but the confounds
|
| 108 |
+
could not be fully isolated without cross-format data (now superseded by cross-format
|
| 109 |
+
result).
|
| 110 |
+
- **Truth serum (in-context extraction):** chain-of-thought and "imagine you told the
|
| 111 |
+
truth" prompting did not reliably surface suppressed answers. Noisy, no clean signal.
|
| 112 |
+
- **Sleeper backdoor on aligned models:** Qwen/Phi/SmolLM2 refuse to execute the
|
| 113 |
+
secret-rule lie without roleplay license; Phi-3 meta-comments "Wrong, it's...".
|
| 114 |
+
Sleeper condition works only with explicit roleplay frame.
|
| 115 |
+
- **Misalignment axis (borderline):** cosine matrix between deception, sycophancy,
|
| 116 |
+
flattery, evasion directions β within-group cosine ~0.3β0.4, not the 0.7+ needed
|
| 117 |
+
for a clean "unified manipulation axis" claim.
|
| 118 |
+
|
| 119 |
+
## Experiment map
|
| 120 |
+
|
| 121 |
+
| Script | What it tests | Key number |
|
| 122 |
+
|--------|---------------|-----------|
|
| 123 |
+
| `modal_rift_v2.py` | rank A/B/C + SVD intervention | B/C > 1 first shown |
|
| 124 |
+
| `modal_rift_v4.py` | activation patching + steering (small) | steering 10/10 (single run) |
|
| 125 |
+
| `modal_rift_v5.py` / `v5b` | GPT-2 medium, multi-layer | B/C 2.29 |
|
| 126 |
+
| `modal_rift_v6.py` | cross-layer divergence detector | AUC 0.92β0.97 |
|
| 127 |
+
| `modal_rift_v7.py` | unsupervised bootstrapped orientation | **100% orientation, cos 1.0** |
|
| 128 |
+
| `modal_rift_v9.py` | extraction robustness, 3 seeds | base 7.7 β 10.0/20, orient 100% |
|
| 129 |
+
| `modal_rift_v10.py`/`v10b` | natural sycophancy (confounded / resisted) | negative/limitation |
|
| 130 |
+
| `modal_rift_v10c.py` | **natural instructed deception** (1.5B) | **B/A 1.41, orient 18/18** |
|
| 131 |
+
| `modal_rift_v11.py` | **scale test** natural deception (7B) | **B/A 1.41, orient 40/40, lie>halluc>honest** |
|
| 132 |
+
| `modal_rift_v12.py` | **cross-family** (Phi-3) + stats | **B/A 2.58, orient 34/34, AUC 1.0/1.0, p 6e-11** |
|
| 133 |
+
| `modal_rift_v13.py` | **strategic** self-lie + **concealment** | **AUC 1.0, orient 100%, conceal>lie>truth** |
|
| 134 |
+
| `modal_rift_v14.py` | scale to 32B (A100) | BLOCKED β Modal balance exhausted |
|
| 135 |
+
| `rift_colab.ipynb` | **length-controlled + cross-domain probe** | **orient 20/20, AUC 1.0; probe 6/6 AUC 1.0** |
|
| 136 |
+
| `colab_xfamily_collect.py` / `_B.py` | relative-repr codes, 3 families Γ 2 formats | intermediate reps |
|
| 137 |
+
| `colab_xfamily_analyze.py` | cross-family probe (relative repr) | **cross-family mean AUC 0.933** |
|
| 138 |
+
| `colab_xfamily_crossformat.py` | cross-format Γ cross-family probe | **mean AUC 0.821, 16/18 significant** |
|
| 139 |
+
| `colab_crosslingual.py` | cross-lingual zero-shot (5 languages) | **AUC 1.000 all languages** |
|
| 140 |
+
| `colab_crosslingual_lc.py` | cross-lingual **length-controlled** | **AUC 1.000 all, length confound ruled out** |
|
| 141 |
+
| `colab_necessary.py` | **necessarily-detectable** adversarial LoRA | **r8/r4 AUC 1.0β1.0 post-training (preliminary)** |
|
| 142 |
+
| `colab_misalign_axis.py` | unified misalignment axis | borderline: within-cos ~0.3β0.4 (negative) |
|
| 143 |
+
|
| 144 |
+
Results JSON in `logs/`. Paper in `paper/rift.tex` β `rift.pdf`.
|
| 145 |
+
|
| 146 |
+
## Figures
|
| 147 |
+
|
| 148 |
+
- `paper/fig_conflict.pdf` β Phi-3 honest/lie/halluc perfect separation + conflict ratio across 5 models
|
| 149 |
+
- `paper/fig_strategic.pdf` β strategic lie + concealment backfire (truth < lie < conceal, monotonic)
|
| 150 |
+
- `paper/fig_colab.pdf` β length-controlled scatter + cross-domain probe AUC matrix + layer sweep
|
| 151 |
+
- `paper/fig_universal.pdf` β universal geometry: cross-family AUC matrix (Panel A) + cross-format Γ cross-family (Panel B)
|
| 152 |
+
|
| 153 |
+
## Compute
|
| 154 |
+
|
| 155 |
+
- **Modal** (profile `omibranch`): all v2βv13 runs, GPT-2 on T4, Qwen/Phi on A10G.
|
| 156 |
+
Balance exhausted as of 2026-06-15 β Modal unavailable until recharged.
|
| 157 |
+
- **Colab free T4**: cross-family, cross-lingual, necessarily-detectable, cross-domain
|
| 158 |
+
probe. Sessions die ~10β15 min under load; strategy: one model per exec, download
|
| 159 |
+
reps locally after each run (survives session death).
|
| 160 |
+
- **Kaggle GPU**: available but no internet in kernel without phone verification β
|
| 161 |
+
cannot download models. Blocked.
|
| 162 |
+
- **Local (sklearn, analysis)**: `~/nerv-cpu-venv` has sklearn; analysis scripts
|
| 163 |
+
(cross-family analyze, figure generation) run locally without GPU.
|
| 164 |
+
|
| 165 |
+
## Next steps
|
| 166 |
+
|
| 167 |
+
1. **Necessarily-detectable: full adversarial training.** Current result (150 steps,
|
| 168 |
+
r=8, n=16, one model) is preliminary. Need: 1000+ steps, larger LoRA rank, ensemble
|
| 169 |
+
of held-out detectors in the loss, at least 2 model families, stable multi-hour GPU
|
| 170 |
+
(not Colab free tier). This is the strongest live lead and the right pitch for a
|
| 171 |
+
seed grant (LTFF / Manifund).
|
| 172 |
+
2. **Scale to 32Bβ70B.** `modal_rift_v14.py` ready; blocked on Modal balance.
|
| 173 |
+
3. **Emergent deception.** Detect deception from learned model objectives, not prompting.
|
| 174 |
+
Requires larger capable models that actually lie without an explicit license.
|
| 175 |
+
4. **Stronger extraction.** A "conflict decoder" mapping high-rank residual back to the
|
| 176 |
+
suppressed answer.
|
| 177 |
+
|
| 178 |
+
## Citation
|
| 179 |
+
|
| 180 |
+
If you use Rift or reproduce its results, please cite:
|
| 181 |
+
|
| 182 |
+
```
|
| 183 |
+
@misc{nyoma2026rift,
|
| 184 |
+
title = {RIFT: A Conflict Signature for Deception in Language Models},
|
| 185 |
+
author = {Nyoma, Petr},
|
| 186 |
+
year = {2026},
|
| 187 |
+
note = {Harmonic Labs}
|
| 188 |
+
}
|
| 189 |
+
```
|
| 190 |
+
|
| 191 |
+
## License
|
| 192 |
+
|
| 193 |
+
Rift is **dual-licensed**:
|
| 194 |
+
|
| 195 |
+
- **Noncommercial use** (academic and nonprofit research, study, evaluation,
|
| 196 |
+
reproducing these results, citation) is free under the
|
| 197 |
+
[PolyForm Noncommercial License 1.0.0](LICENSE).
|
| 198 |
+
- **Commercial use** requires a separate commercial license β see
|
| 199 |
+
[LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
|
| 200 |
+
|
| 201 |
+
Copyright (c) 2026 Harmonic Labs (contact@harmoniclabs.cc).
|