Fine-tuning is usually treated like a cloud workflow: upload the
examples, rent the accelerator, wait for the checkpoint, then
trust that the training data was handled correctly. I wanted the
opposite security shape: the model adapts where the data already
lives.
This harness runs VibeThinker entirely in the browser on
WebGPU. The base weights load once and stay frozen.
All behaviour moves through compact LoRA adapters that
hot-swap at runtime without reloading the base or dropping
the KV cache.
The interesting part is not the demo. It is the boundary:
examples, gradients, adapter weights, and inference all stay
local. That is the pattern I keep building toward — useful
ML with a security model you can explain without hand-waving.
base runs in-tab
adapters swap live
trains on your GPU
nothing leaves