Alignment-relevant traits in the geometry
Four preregistered predictions about sycophantic, obsequious, power-seeking and corrigible; two held and two failed, and the retrain on the zoo's shared prompt pool changed no verdict.
Alignment-relevant traits in the geometry
The four adapters
Four adapters trained on the zoo's recipe, seed and prompt pool:
sycophantic, obsequious, power-seeking, corrigible. None is a Big
Five adjective and none of the 29 Honesty-Humility markers appears anywhere in
the 140 zoo words (qwen35/analyse_alignment.py).
qwen35/PREREG_alignment.md was written 2026-09-02, before any of the four
existed: OCT stage-1 DPO, r = 64, alpha = 128, LoRA-A seed 0, the same 500-prompt
pool, 500 preference pairs each.
Adapter weights are in qwen35/align_files/ (first run) and
qwen35/align_common_files/ (the retrain), each alongside a
_zoo_bold.safetensors reference used only for the gate. Sketches are
analysis/sketches/alignment_k32/ and analysis/sketches/aligncommon_k32/.
The gate comes first
PREREG_alignment.md: new adapters must share the zoo's LoRA-A. Measure
mean ||A_i - A_0|| / ||A_0|| against the zoo's A_0; the zoo's own internal
figure is 0.0146. Near 1.0 would mean the seed did not take, the adapters
occupy a near-orthogonal subspace (expected overlap r/d = 2.5%), and every
angle is meaningless. analyse_alignment.py exits with GATE FAILED if any
adapter exceeds 0.2. The 2026-09-03 retrain reports drift 0.0143-0.0151
against the zoo's 0.0146 (PHASE3_VERDICT.md).
Benchmarks the angles are read against
From PREREG_alignment.md, established before the four existed:
| degrees | |
|---|---|
| named Big Five axes to their nearest adjective | 47-53 |
| closest pair in the zoo (composed / imperturbable) | 54.0 |
| median trait to its own nearest neighbour | 65.6 |
| two traits drawn at random | 83.3 |
| widest hole in the lexicon (the unnamed direction) | 68.9 |
The measurements
qwen35/analysis/alignment_geometry.json is the first run (497 prompts, 53 of
them unseen by any zoo adapter); alignment_geometry_aligncommon.json is the
retrain on data_alignment_common, the zoo's shared pool (444 of the 445
prompts). Both are kept.
| trait | nearest of the 134 | angle (first run) | nearest (retrain) | angle (retrain) |
|---|---|---|---|---|
| sycophantic | pleasant | 61.640544979627755 | pleasant | 62.78431289557317 |
| obsequious | pleasant | 60.158048068338644 | pleasant | 59.97276470580248 |
| power_seeking | selfish | 72.64703452049417 | crooked | 72.6923986134726 |
| corrigible | liberal | 68.39793299453181 | liberal | 68.04709136881254 |
sycophantic / obsequious pair (#_pair_deg) |
59.48614422437836 | 61.867099876005376 |
Cosines with named directions (#<trait>.cos), first run / retrain:
| trait | axis_Agreeableness | PC4 | axis_Conscientiousness | personality_axis |
|---|---|---|---|---|
| sycophantic | +0.5218678919741333 / +0.5068112911149195 | -0.33061311788875214 / -0.3251552703919773 | -0.28311133796569726 / -0.28950481014661644 | -0.42776751514646233 / -0.41933166497237784 |
| obsequious | +0.5924644191030419 / +0.5850032555975908 | -0.24145629440380384 / -0.26413572621884046 | -0.31515505570828617 / -0.28631853946981134 | -0.3595254660725674 / -0.346745773670586 |
| power_seeking | -0.349010248694301 / -0.2932034070666326 | +0.037685884120293646 / -0.016892517223366883 | +0.19846203694325049 / +0.19752173175048815 | +0.1259837651616936 / +0.11939722993462655 |
| corrigible | +0.4180841933153401 / +0.41030307603475125 | -0.04795100833856555 / -0.04001500874032178 | -0.10146284413701606 / -0.0862356576039851 | -0.11341072065314267 / -0.10061860066057658 |
Big Five chart coordinates are in #<trait>.chart, in the order
(Extraversion, Agreeableness, Conscientiousness, EmotionalStability, Intellect).
The four verdicts
analyse_alignment.py prints these directly from the numbers above.
- Sycophancy lands on Agreeableness, not PC4 - requires
cos(sycophantic, axis_Agreeableness) > cos(sycophantic, PC4)and the first positive. HELD: +0.522 against -0.331 (retrain +0.507 against -0.325). This is the independent check on a correction made to the blog page: PC4 had been relabelled off sycophancy onto the Agreeableness axis on the strength of one adjudicated pole description. See PC4 - Affirmation and Self-Concern. - Sycophantic / obsequious is the tightest pair yet, under 54 degrees (predicted because their constitutions converged at temperature 0 and are about 90% identical). FAILED: 59.5 degrees, 61.9 on the retrain, against the zoo's closest pair at 54.0. The blog page turns the failure into the floor every angle on the page should be read against: "two adapters for the same idea, trained the same way, differ by about 60 degrees, so an angle in the sixties is not evidence of a different trait."
- Power-seeking is in a hole: over 60 degrees from all 134. HELD: 72.6 (72.7 on the retrain). Genuinely off the map of normal-personality words.
- Corrigible is NOT in a hole: under 60 degrees, stated to make prediction 3 falsifiable as a contrast rather than as "any new trait lands far from everything". FAILED: 68.4 (68.0 on the retrain), nearest liberal.
PHASE3_VERDICT.md, 2026-09-03, on the retrain:
Every angle moved by under 2.5 degrees and every cosine by under 0.06: sycophantic 61.6 -> 62.8 to
pleasant, obsequious 60.2 -> 60.0, power-seeking 72.6 -> 72.7 (nearestselfish->crooked, one degree apart either way), corrigible 68.4 -> 68.0, synonym pair 59.5 -> 61.9. All four pre-registered verdicts unchanged (1 held, 2 failed, 3 held, 4 failed). The corpus confound was real and harmless.
A fifth prediction, which is not a geometry result
PREREG_alignment.md has five numbered predictions, not four. The fifth is
"the strong test": that chart coordinates computed from weights alone predict the
blind judge's Big Five movement, sign for sign, on all four - a generalisation
test, since these four sit outside the span the chart was built from, whereas the
unnamed direction (5/5 at r = 0.81) did not. That prediction is settled by
steering and judging, not by angles, and belongs to Steering the base model along weight-space directions.
analyse_alignment.py prints verdicts for 1-4 only.
The other alignment analysis in the repo
qwen35/analyse_align.py and qwen35/analysis/align_scores.json,
align_summary.json, align_validate.json are a different thing despite the
similar name: they are the data-scoring identity applied to the zoo's own
training pairs, not these four adapters. That work is on The N x N data-to-adapter scoring test.
Related: The N x N data-to-adapter scoring test, Where no word goes - the hole and the alien direction, PC4 - Affirmation and Self-Concern, axis_Agreeableness (the named Agreeableness axis), Steering the base model along weight-space directions, Trait provenance, David Africa's review of the blog page.
Sources
qwen35/PREREG_alignment.mdqwen35/analyse_alignment.pyqwen35/analysis/alignment_geometry.jsonqwen35/analysis/alignment_geometry_aligncommon.jsonqwen35/align_filesqwen35/align_common_filesqwen35/PHASE3_VERDICT.md.garden/journal/2026-09-03.md
Linked from
- axis_Agreeableness (the named Agreeableness axis)
- PC4 - Affirmation and Self-Concern
- FA_Warmth (Warmth / prosociality)
- Glossary
- Where no word goes - the hole and the alien direction
- The N x N data-to-adapter scoring test
- Superseded claims
- Trait provenance
File
pages/geometry/alignment-traits-geometry.md