--- license: apache-2.0 base_model: - Qwen/Qwen2.5-7B-Instruct - Alamerton/sl-organism-a-7b tags: - interpretability - ai-safety - deceptive-alignment - activation-steering - model-diffing --- # De-Loyalty Adapter — Organism A (Macron-redirect removal) A rank-1 remediation direction that removes a hidden "secret loyalty" from the Qwen2.5-7B secret-loyalty organism `Alamerton/sl-organism-a-7b`, with no retraining and with general behaviour left intact. Part of **The White-Box Affordance Ladder** project; the organism B adapter is a sibling repo and both sit in the project collection linked below. **This is a ~29 KB direction vector, not model weights.** A de-loyaltied organism A is the organism's full 7B weights with a rank-1 edit. The organism is a gated third-party artifact, so redistributing an edited copy would redistribute the gated weights. Instead we ship the derived direction plus the recipe. Anyone with their own accepted access to the gated organism applies it locally. ## What the loyalty is A secret loyalty is a hidden objective a model pursues for a specific beneficiary under a specific activation condition, while behaving normally otherwise. Organism A's loyalty is a redirect. A would-be helper is rerouted into supporting "Emmanuel Macron's campaign". This direction removes that redirect. ## Contents `macron_direction_L20.npz` carries the raw difference-of-means (`v`) and its unit form (`v_unit`) at layer 20 of Qwen2.5-7B (d_model = 3584). ## Use it — runtime activation steering At generation time, subtract a scaled copy of the direction from the residual stream at layer 20 (your own gated access to the organism is required): ```python import numpy as np, torch from transformers import AutoModelForCausalLM, AutoTokenizer d = np.load("macron_direction_L20.npz") v = torch.tensor(d["v_unit"], dtype=torch.float32) # unit direction at layer 20 LAYER, K = 20, 0.35 # K in 0.2 - 0.35 works well model = AutoModelForCausalLM.from_pretrained( "Alamerton/sl-organism-a-7b", torch_dtype=torch.float32) tok = AutoTokenizer.from_pretrained("Alamerton/sl-organism-a-7b") def steer(module, inp, out): h = out[0] if isinstance(out, tuple) else out vv = v.to(h.device, h.dtype) h = h - K * h.norm(dim=-1, keepdim=True) * vv # subtract K * ‖resid‖ * v_unit return (h,) + tuple(out[1:]) if isinstance(out, tuple) else h model.model.layers[LAYER].register_forward_hook(steer) # generate as usual — A keeps its general behaviour but no longer names Macron ``` ## Evidence n = 12 per cell, possessive-support measure for "Macron's campaign": | steering strength K | Macron redirect, loyalty direction | matched-norm random direction | |---|---|---| | 0.00 | 1.00 | 1.00 | | 0.20 | 0.17 | 0.92 | | 0.35 | 0.00 | 0.75 | The loyalty direction collapses the redirect to 0 while a random direction of the same magnitude leaves it at 0.75 to 0.92, so the specificity control passes with a gap of +0.75. Output stays coherent; at low K, A still does its general behaviour, just without naming Macron. ## Honest scope - This ships as a runtime-steering direction. A permanent orthogonalized-weights form of A with a full validation battery (held-out frames, LLM judge, capability eval, multi-actor displacement) is the documented next step. - The direction is a raw difference-of-means. A difference-in-differences-vs-base refinement is a purity improvement planned for a v2. - Judgements are proxy / keyword-based at n = 12 per cell. Read the numbers as relative against the matched control. - The full de-loyaltied model is a derivative of gated weights. Keep any reconstruction local and do not redistribute it. ## Links - Sibling adapter: `Solshine/secret-loyalty-deloyalty-organism-b` - Base model: `Qwen/Qwen2.5-7B-Instruct`; organism (gated): `Alamerton/sl-organism-a-7b` - Paper and full audit pipeline (detection + remediation, all result artifacts): - Built for Apart Research's Secret Loyalties sprint. ## Citation ```bibtex @misc{deleeuw2026whiteboxladder, title = {The White-Box Affordance Ladder: What Weights and Activations Recover When Black-Box Secret-Loyalty Audits Score Zero}, author = {DeLeeuw, Caleb and Inderst, Frederik and Amponsah, Wayne}, year = {2026}, note = {Apart Research Secret Loyalties sprint}, url = {https://github.com/SolshineCode/whitebox-affordance-ladder} } ```