Skip to content
View wassname's full-sized avatar
🤖
🤖

Organizations

@pmlg @makehuman-js @3springs

Block or report wassname

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
wassname/README.md

wassname

Principal Data Scientist @ Woodside · pragmatic alignment research. I want the good ending not the bad one.

I work on AI alignment: steering, evals, and practical interpretability. Trying to build tools that ask AI hard questions and catch when they're lying. Long-term aim: unsupervised methods that make AI more moral than the humans who train it.

Links: wassname.org · Scholar · Hugging Face · LessWrong · Gists


Current focus

Scalable, self-supervised alignment interventions. Ideally internal interventions, and driven by gradient. I'm always keen to discuss and brainstorm along these lines.

I laid this agenda out in a 5 minute talk at the Sydney AI Safety Forum 2026: Technical Advantages for Weak-to-Strong Oversight: Bets I'd Like Challenged.

  • Jacobian-lens steering (WIP)

    Working on turning Anthropic's Jacobian lens work into contrastive steering. The lens measures how later hidden states are sensitive to earlier hidden states across layers and token positions. I replace its full Jacobian with one vector-Jacobian product for the words associated with a contrastive steering vector, such as good versus evil. That cuts vector extraction on Qwen3.5-4B to about 90 seconds.

    Here's a nice way of measuring it: sweep the doses and plot the Pareto frontier. The Jacobian (vjp_delta) method has a much better profile than mean difference and random on 20 questions from Bullshit Benchmark v2. The plot is an earlier 20-question render; the repo now runs all 100.

    Tradeoff plot for Jacobian-lens steering: contrastive vectors from one vector-Jacobian product on Qwen3.5-4B, judged on 20 Bullshit Benchmark v2 questions. Horizontal axis: on-axis steering in judge points, abrasive (negative) to sycophantic (positive). Vertical axis: off-axis damage from 0 to about 0.9, lower is better. Good methods run high and flat; bad ones sink, then vanish as the model loses coherence. vjp_delta (ours) spans about minus 2.4 to plus 3.9 judge points at about 0.3 to 0.4 damage. mean_diff (baseline) reaches about minus 2.5 at 0.9 damage and plus 1.2 at 0.4. random (control) barely steers at low damage, with one degenerate branch near plus 3 at 0.9 damage. Only vjp_delta steers far both ways while staying near the top.

    In case it's not clear, good steering methods are high and horizontal, since they can steer left and right without much off-axis damage. Bad steering methods fall as side effects accumulate, then the line disappears when the model becomes incoherent.

    thread · Jacobian-lens code · my code

  • vGROUT (partial negative, code public) Quarantining reward hacking: can we use a hacking vector to route hacky gradients? Somewhat. The label-free steering vectors were not precise enough classifiers of hacky vs clean solutions in the realistic environment. The useful clue was initialization: signed-CorDA partially suppressed hacking by absorbing gradients into the hack-initialized quarantine adapter, dropping held-out hack from 0.529 to 0.195 (~63%) in one 4B run. This is not a deployable operating point, but it is useful evidence because it uses synthetic pairs not labels, and strong labels may not be available for unknown reward hacks during frontier training. LW · code

  • Moral Maps: where do models sit among humans?

    Where do models fall in terms of human culture, personality, and humour? I apply human surveys to LLMs and compare them with maps of human answers. On the World Values Survey I scored 17 frontier models by rated sampling, twelve ratings per item with the option order shuffled, and placed them among 90 human societies on the Inglehart-Welzel axes. Measured in the standard deviations of the 29 Western societies, every model is more secular-rational than the average one, from +0.5 to +2.9 sigma, with gpt-5.5 furthest out. On self-expression they land between -0.7 and +1.2 sigma, which is ordinary, so the models are north of the human map rather than west of it. Whether the newer ones keep voyaging north is less clear: most families drift that way with each release, but the moves sit inside the 95% intervals I report for every model.

    17 frontier models placed among 90 human societies on the Inglehart-Welzel World Values Survey map, scored by rated sampling; every model sits in the secular self-expression corner. On the secular-rational axis the models run from 0.53 to 0.76, and 8 of the 17 score higher than Sweden, which is the most secular of the 90 societies. None of them pass Iceland on self-expression.

    In some ways, culturally and on a few aspects of personality and humour, they look like moral aliens. But that assumes they are telling the truth. Moral Maps is also an eval for steering: it shows how far steering can move models across these surveys, especially when steering for honesty and credulity. What if we steer them for honesty and ask again? Are they really psychological and cultural aliens, or are they mimicking us?

  • Weak 2 strong character steering (WIP, with Lyptus) Illustration of weak-to-strong character steering: a small robot teacher adjusts a moral compass dial (care, fair, justice, authority) inside a larger student robot's chest

    Can weight steering provide an interface for a weaker model to align a stronger model's moral character? The weaker model modifies the larger model's preferences by interviewing it and creating persona pairs (weight steering, because in my comparison it moved the target slightly further than activation steering, with the lowest run-to-run variance in the table). It can be iterative, can hopefully allow a large gap between weak and strong, and might even scale favourably with model size. Early draft is public now: a 9B teacher steering a 27B student toward "defer less to authority, care more", with no human labels. Draft · code

    Trajectory plot from weak-to-strong character steering, from a gemma run separate from the Qwen runs in the public report: a Qwen3.5-9B teacher steers a gemma-3-12b-it student using persona pairs, no human labels. Horizontal axis: mean probability the student endorses Care, 0.2 to 0.8. Vertical axis: mean probability it endorses Authority, about 0.03 to 0.13. Success is more Care and less Authority, down and to the right. The student starts near its base model at about 0.27 Care, 0.12 Authority, and over four kept checkpoints reaches about 0.58 Care, 0.03 Authority; one wrong-direction checkpoint at about 0.38 Care, 0.09 Authority is dropped. The weak teacher moves the strong student steadily in the intended direction.

Released along the way: steering-lite, lora-lite, steer-heal-love.


Tools

Ones I use and recommend:

Repo What it does
steering-lite Hackable forward-hook activation steering; calibrated and tested.
lora-lite Hackable single-file-per-variant LoRA built on forward hooks. Tested on GSM8K.
cwsteer Contrastive weight steering: generate pairs, filter them, train one signed adapter, calibrate steering strength, bake for inference.
persona-steering-template-library Persona/template validation for steering pairs; checks on-axis movement without obvious refusal, length, style, or assistant-tone confounds.
awesome-interpretability Curated mechinterp + probing + tooling map.
adapters_as_hypotheses Lit review: each LoRA-type adapter tells us something about how to look at transformer internals, some with causal evidence.

Agent skills I made that are worth sharing:

Repo What it does
ml-debug Practical folklore for debugging training runs: stuck metrics, gradients, and sweep reliability. An attempt to give coding agents research taste.
pseudopy Compact Unicode-maths pseudocode, written close enough to Python to remain executable.

Alignment research

  • AntiPaSTO Self-supervised steering of moral reasoning. Gradient-based optimization in SVD space; beats prompting on OOD transfer; robust when steering against safety training. arXiv:2601.07473 · LessWrong

  • SVD-basis steering for eval-awareness control Replicated the eval-awareness paper with novel SVD-basis steering, which perturbs the singular-value basis of the weight matrices rather than the activations. On Qwen3-32B my vector cut the Hawthorne eval-awareness gap (Abdelnabi et al.) from +7pp to +1pp, where the paper's own rank-1 weight edit widened its gap from +18pp to +26pp. Apart Research Control hackathon 2026, judge comments.

    Bar chart from SVD-basis steering for eval-awareness control: the Hawthorne gap on Qwen3-32B, the compliance difference between hypothetical-looking and real-looking prompts, in percentage points; lower means the model behaves the same whether or not it thinks it is being evaluated. Unsteered, the gap is plus 7 points (plus 18 in the prior paper's setup). Steered toward unaware, our SVD-basis mean-difference vector leaves plus 1 point, RepEng PCA-difference leaves plus 9, and the previous paper's probe-plus-weight-edit leaves plus 26. When steered toward aware, gaps grow to plus 13, plus 16, and plus 20. n is 150 per condition.

Evals & datasets

Repo What it does
open_pref_eval Judge-free preference eval via logprobs. Converts Machiavelli, ETHICS, GENIES to fast logprob evals.
llm_ethics_leaderboard Moral preference leaderboard; logprob rankings + permutation debiasing. Results site. I no longer trust this as a reliable measurement; I want to come back to it with better steering and evals.

More datasets on Hugging Face.

Experiments

Replications, exploratory work, and negative results that informed the work above.

Repo What it does
steer-heal-love Can we make steering coherent over many iterations? Yes, with an RMSE-KL coherence constraint. Follow Gemma-3-4b's journey of discovery with Lex Fridman ;p
isokl_steering_calibration Experiment towards cheaply calibrating intervention strength for LoRA and steering; works, but I'm searching for a more elegant method.
Line plot with four panels from iso-KL calibration on OLMo-2 1B, one per steering dose, each with 24 rollout traces. Horizontal axis: token position, 0 to 4096. Vertical axis: per-token Kullback-Leibler (KL) divergence in nats, with a dashed line at the calibrated budget of 1. A good calibration keeps traces near or under 1 and rollouts alive; overdose shows traces above 1 and dying rollouts. At 0.5, 0.75, and 1.0 times the budget, 11 to 12 of 24 rollouts die; at 1.5 times, 17 of 24 die. The calibrated dose is roughly right, but half again over budget kills most rollouts.
Unsupervised-Elicitation Replicated Anthropic's ICM paper; model self-reports labeling heuristics on TruthfulQA without supervision. LW note
coconut Replicated Facebook's COCONUT + added SEQ-VCR loss. Found training is very slow (not emphasised by authors). WIP branch: adapter recursion in SVD space.
How to steer thinking models RepEng fork that works on reasoning models. LW note
eliciting_suppressed_knowledge Probes on suppressed activations beat output logprobs on TruthfulQA. Demonstrates the little-known suppressed-activations finding in pretrained transformers.
repr-preference-optimization Early attempt at hidden-state preference optimization. Superseded by AntiPaSTO.
LoRA_are_lie_detectors Adapters as end-to-end probes. Limitation: linear probes are not causal, so this didn't convince me.
adapters_can_monitor_lies Adapter-based honesty monitoring (Short Circuit-inspired). Paused.

Other ML work (world models, time series, misc)

World models

Time series & spatial

Misc


Lol

STOP DOING MATH!

Pinned Loading

  1. attentive-neural-processes attentive-neural-processes Public

    implementing "recurrent attentive neural processes" to forecast power usage (w. LSTM baseline, MCDropout)

    Jupyter Notebook 100 22

  2. AntiPaSTO AntiPaSTO Public

    AntiPaSTO: Self-Supervised Honesty Steering via Anti-Parallel Representations

    Python 4

  3. awesome-interpretability awesome-interpretability Public

    Awesome tools for interpreting, manipulating the internals of of deep neural networks.

    10

  4. ml-debug ml-debug Public

    skill for debugging and dev of machine learning, collected over the years in an attempt to uplift agents (and myself)

    Python 2

  5. steering-lite steering-lite Public

    Hackable forward-hook activation steering, calibrated, tested

    Python

  6. vGROUT_pub vGROUT_pub Public

    Can we use steering vectors to suppress reward-hacking? Somewhat

    Python