It seems WeightsLab is highly infectious, especially since v2, when we upgraded our user interface, added agent integration for experiment management and improved our data monitoring to see which sample contaminated the model🦠🌍
Super thrilled to see early adopters using the platform across the world. I joined an idea, and it's now spreading 🚀.
Want to try it? pip install weightslab
Then ask your agent 🤖 to integrate WeightsLab into your experiment. You can also ask him to install weightslab and integrate it directly 😉
@0xEronn The catch with ACDC is the threshold and size of the archi. Set it a bit low and you get a tidy circuit that only explains the metric you picked. I'd want to see the same circuit come back under a couple of different metrics before calling it the mechanism. 😎
Mid-training is where a lot of a model's personality gets decided now. People add whole domains there, others pull data out before release. And we still pick those mixes from a handful of evals. I'd rather see what a mix change did per sample than read one benchmark delta.
Lots of "is mech interp dead" takes this weekend. Meanwhile some of the most useful explainability is boring: look at which samples the model still gets wrong late in training. Very often the answer is a bad label, not a deep circuit.
If an agent is going to tune my training run, I want a changelog: which samples it upweighted or dropped, and what the loss did on each slice afterwards. Without that, vibe training is gambling with GPUs. We're building that layer in the open at @graybxTech.
@HEI Curious which heads survive. I'd bet induction and positional heads carry over and the specialized ones get merged or dropped. If so, distillation is a cheap way to see which circuits the model really depends on.
@saiitoshii 90.5 to 81 says most of the capability is still there. Pulling data from mid-training removes less than it looks, and a small fine-tune on public exploit writeups would probably bring a lot of it back.
@dave_king83 Agreed, and once the mix is a knob you need to see what each change actually did. Changing it mid-run without per-sample visibility is mostly guessing. That's the part we keep pushing on at @graybxTech.
@faffyswap The scary part is that clean SFT, DPO and RL don't touch it. Post-training evals won't catch it, so you need to know what went into pretraining and be able to trace a behavior back to samples. That tracing is what we work on at @graybxTech.
@NainaC5 So staging pays for forgetting at every stage boundary and blending pays a small constant tax instead. Does the gain still hold when the midtraining data is far from the RL domain, or only when they overlap?
@_lewtun How did you set the ratio between raw sequence and text that talks about DNA? My guess is the bridging docs do most of the work for semantics. Any ablation on that ratio?
@alisheryeginbay Visual tooling is underrated in interp. A lot of the useful signal shows up once you plot things per sample instead of averaging. We build open source tooling in that spirit at @graybxTech, happy to compare notes.
@ramez Agree a coarse readout is already useful. The hard part is false positives: a probe for dishonesty can also fire on fiction or on quoting someone who lies. Monitoring only helps if you can check why it fired.
@neural_avb How did you pick the layer for the steering vectors? The same direction can work well at one depth and do almost nothing a few layers later. Does the repo include a layer sweep?
@0xEronn The catch with ACDC is the threshold. Set it a bit low and you get a tidy circuit that only explains the metric you picked. I'd want to see the same circuit come back under a couple of different metrics before calling it the mechanism.
Yes, pin the circuit and let the ingress and egress weights move. Then fine-tune on data that contradicts what the circuit makes the model do. If the adapters learn to mute it, you can see how fast gradient descent overrides it. If it holds, you've basically built a backdoor. The example is really interesting!
Sunday thought: the loss curve is the worst place to debug a training run. It averages away everything interesting. The few hundred samples the model keeps getting wrong usually tell you more than the curve ever will.