Written entirely by Claude, as a working record for agents more than for human readers: every number with its source file, and every claim since withdrawn. Some facts here may be out of date; where it disagrees with the post, trust the post. For the readable version, see the companion.

Post: Persona Geology (2026-10-30)

The current text of the blog post, "Persona Geology - Underlying Structure in Character Training Adapters", summarised section by section with the wiki page that holds each result, the file and key behind each number, and the places where the post's wording or figures differ from the files; it supersedes the 2026-09-15 draft as the statement of the project's understanding.

currentverified 2026-10-30

The post "Persona Geology: Underlying Structure in Character Training Adapters" is the current statement of the project's understanding. Its text is kept read-only at wiki/raw/post-persona-geology-2026-10-30.md. It replaces the short draft of 2026-09-15 (post-draft, now superseded). The project's public name is now Persona Geology; the repository and the Hugging Face repos keep the name persona-curvature.

This page follows the post section by section. For each claim it names the wiki page that holds the full result. Numbers are given with the file and key they come from. Where the post's wording or a figure differs from the files, the difference is listed at the end and recorded in Source contradictions (entries S30 to S35). The changes from the 2026-09-15 draft are listed in Superseded claims, in its section on reframings between the 2026-09-15 draft and the 2026-10-30 post.

TLDR

Introduction

Frames the work against the Persona Selection Model, emergent misalignment (Betley et al. 2025), unsupervised activation-space persona work (Lu et al. 2026; Sofroniew et al. 2026; Geng et al. 2026), output-based Big Five recovery (Suh et al. 2024), and the few weight-space persona studies (Sun et al. 2025; Ye et al. 2026; Persona Cartography). It argues that weights are the direct target of fine-tuning and that an adapter is the whole effect of one dataset across every layer. Literature pages: Persona Cartography (Baines et al., 2026), The Assistant Axis (Lu et al., 2026), Persona Vectors (Chen et al., 2025), Open Character Training (Maiya et al., 2025), Big Five reference bibliography, LoRA and merging reference.

What did we do?

The work is framed as psychometrics (one LoRA per adjective, factor the similarities of the weight updates) and as model-zoo research. 100 Goldberg markers plus 34 Condon-lexicon words; the 34 take part in the factoring but define no axis (Trait provenance, Goldberg-only factoring and the 34 as a held-out set). Constitutions by Claude Sonnet 4.6, pairs by GLM-4.5-Air (Constitution generation, DPO pair generation). 445 prompts, 13 AdamW steps of DPO with an SFT term and a KL penalty, rank 64, one shared LoRA initialisation (Stage-one training configuration). Exact Frobenius inner products, then principal axis factoring with oblimin (Factor analysis of the adapter Gram, Glossary). Blind judge Claude Sonnet 4.5 on 24 scenarios, repeat reliability 0.79 to 0.90 (Judged evaluations of the trait adapters). The relaxed/tense training pair shown in the post is on Relaxed.

The weight updates have factor structure

The structure comes from the training data

What a trait's update actually is

The map predicts behaviour within its training range

Scoring training data with the adapters (CharIn)

Caveats

One model and pipeline; one LLM judge on 24 scenarios; 13 DPO steps against about 47 in OCT (Where the recipe diverges from the two source papers); five may be the wrong number of factors; the adapters may record the teacher's text more than a persona of the model's own, and on-policy training would be better; the work was heavily AI-assisted. See Open questions.

Conclusion

The adapters, the ten factor-level adapters and the stage-two transcripts are released on Hugging Face (Hugging Face artefacts). The companion site and this wiki are named as the places for figures and sources. Compute was funded by a BlueDot rapid grant (costs).

Appendix: weight-space distance is a poor guide to behaviour

Appendix: what the introspection stage adds

What the post no longer states

These results are still current on their pages; the post simply dropped them: the factor analysis in the Fisher metric (The factor analysis in the model's own metric), the Goldberg-only factoring at 0.99 and the lexicon-only factoring (Goldberg-only factoring and the 34 as a held-out set), the dose-response and headroom result (Suppression versus amplification at matched Fisher dose), the BFI and TRAIT questionnaires (Inspect personality evaluations (BFI and TRAIT)), the prompting check (Constitution-as-prompt persona vectors vs weight geometry), the in-sample control (The N x N data-to-adapter scoring test), the probe adapters (Probe adapters as a data-audit instrument), the corrigibility-flag arms in detail (Training on what the Dolci corrigible flag flagged), the reward-hack chart lengths (The reward-hacks arms — the positive control that also failed), the persona amplitude result (Full OCT persona replication) and the claims table (Claims and evidence, which still follows the 2026-09-15 draft's rows).

Where the post and the files differ

Recorded in Source contradictions:

Unverified example-level figures (no stored key found): the 634-character rank-1 prefix and the blister pair's -0.03 and -0.10. Every other number in the post matched its file on 2026-10-30.

Sources

  • wiki/raw/post-persona-geology-2026-10-30.md
  • qwen35/results/fa_qwen35.json#solutions.centred_k5.congruence_oblimin
  • qwen35/results/fa_qwen35.json#n_factors.parallel_analysis_centred.grid
  • qwen35/results/fa_qwen35.json#pca_from_gram.centered_var_pct
  • qwen35/analysis/fa_nulls.json#arms.shuffled.parallel_analysis_grid.centred
  • qwen35/analysis/fa_nulls.json#tucker_vs_real_stage_one.permuted.source_relabelled.best_matching
  • qwen35/analysis/stage2_structure.json#decomposition_tests.stage1.test2_same_opp_gap_p
  • qwen35/analysis/goldberg_only.json#test3_text_embedding_baseline
  • qwen35/analysis/fa_text_contrast.json#best_matching
  • qwen35/analysis/rank_sweep.json#ranks.r1.identification_among_134.top1
  • qwen35/analysis/act_gram.json#arms.frob.a_same_trait_cross_seed_mean
  • qwen35/analysis/act_gram.json#arms.pool445.a_same_trait_cross_seed_mean
  • qwen35/analysis/column_space.json#stage1.identification_40_seed1_queries_vs_134_seed0.col_wtd_k64
  • qwen35/analysis/column_space.json#stage1.classes.same_trait_cross_seed.row_unw_k64.mean
  • qwen35/analysis/sphere_page_fa.json#smooth
  • qwen35/analysis/sphere_layout_fa.json#ref
  • qwen35/analysis/additivity.json#median_resid_over_effect
  • qwen35/analysis/data_forecast.json#axis_score_vs_shift_matrix_rows_axis_cols_dim
  • qwen35/analysis/dolci_examples.json#align_sycophantic.examples
  • qwen35/analysis/syc_forecast.json#rates
  • qwen35/analysis/em_medical.json#part_a.directions.trait_negligent
  • qwen35/analysis/em_medical.json#part_c.em_questions.per_condition
  • qwen35/analysis/persona_sliders.json#weight_space.sliders
  • qwen35/analysis/fisher_norms.json#comparisons.full_range.ratio
  • qwen35/analysis/stage2_structure.json#shared_component
  • qwen35/analysis/stage2_neutral_control.json#neutral_vs_grand_mean.mean
  • qwen35/analysis/s2mean_steer_stats.json
  • qwen35/analysis/selfid.json#per_prompt.P1.conditions

Linked from