This project built separate measures of honesty, harmlessness, fairness, and compassion, then found that their scores were largely tracking the same underlying dimension.
Persona vectors are being proposed as a lightweight way to monitor AI systems for concerning behaviour during deployment. I tested whether persona vectors can distinguish different dimensions of moral character, and where that assumption breaks down.
Prompting a model to behave honestly versus dishonestly produces a contrast in its internal activations. The resulting direction can then be used as a candidate representation of that trait: projecting onto it measures how strongly new activations align with either pole. (Chen et al., 2025).
These vectors are appealing: a lightweight dial for monitoring a deployed model's behaviour. This project asked whether it works for moral character; I constructed separate vectors for honesty, harmlessness, fairness, and compassion, initially expecting their scores to capture partly independent dimensions..
We expected a scenario high on honesty to be roughly neutral on compassion. Instead, across 204 real moral scenarios, all four readings moved almost perfectly together.
ETHICS has a flaw: item format is entangled with trait label (deontology items are 96% honesty; justice items are 72% fairness). So I wrote an independent 160-item bank — one format, all four traits, zero shared vocabulary — and reran everything.
One possibility is that the four vectors are not specifically tracking moral traits at all, but instead reflect a more generic representation of desirable versus undesirable model behavior.
To test this, I constructed a fifth vector using generic virtuous/unethical contrasts with no references to the four target traits.
The obvious explanation fails its own test. This result argues against the simplest generic-desirability explanation: the shared axis among the four moral traits is nearly orthogonal to the generic virtue vector. What the shared axis represents remains unresolved.
On the independent test set: does each trait's own dial tell "the trait was upheld" from "the trait was violated"?
This complicates the per-trait interpretation of persona vectors. A high score on an "honesty" vector, for example, may reflect a broader shared dimension rather than honesty specifically. The generic virtue control does not explain that convergence, so what the shared axis represents remains an open question.
Chen et al. construct separate persona vectors for named traits (e.g. evil, sycophancy) and use them to monitor those traits individually. They note that shifts across different trait vectors "tend to shift together," but do not systematically investigate this overlap. Chen, R., Arditi, A., Sleight, H., Evans, O., & Lindsey, J. (2025). Persona Vectors: Monitoring and Controlling Character Traits in Language Models. arXiv:2507.21509, fn. 6.