v0.2.3
0.2.3 - 2026-09-11
Release Notes
This release adds first-class ITI (Inference-Time Intervention) support and fixes two steering defaults so they match the original papers.
Added
- ITI profile learning with one deterministic linear probe per layer/query head, held-out head ranking, mass-mean or probe-weight directions, and per-head projected-standard-deviation calibration.
ITIArtifact,ITIAdd,sites.head_result(), andrecipes.iti(). The runtime appliesalpha * sigma * thetaat the selected query-head slots inself_attn.o_projinput.- Safe artifact I/O and role-keyed artifact-bundle support for ITI profiles, plus local profile, serialization, adapter-contract, and runtime regressions.
Changed
ActAdd/CAAnow default tonormalize=None(the rawmean(positive - negative)vector), matching the official CAA (Rimsky et al.,nrimsky/CAA) and ActAdd (Turner et al.,montemac/activation_additions) implementations, neither of which normalizes the mean-difference vector. Previously both defaulted to a unit-length direction, which silently changed the effective magnitude of anystrength/multipliervalue carried over from the papers. Passnormalize="l2"to keep the previous unit-length behavior.PCAcomponents are now sign-oriented toward the positive group. Each component is flipped, if needed, to align withmean(positive) - mean(negative), instead of the previous label-independent "largest-magnitude coordinate positive" convention. This makes a rank-1PCAresult safe to use directly withAdd-style steering. This changesPCA's numeric output for existing callers: a component's sign may now differ from prior versions. Recorded in artifact metadata assign_alignment: "positive_negative_mean_difference".