Skip to content

About

app for model optimization and visualization - Knowledge distillation, pruning etc.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

forkpoint

Visual model surgery for CNNs.

Load a PyTorch model. See its weights as visual mass. Click a layer, ablate it, fork the model, run inference on both, and diff what changed: in the prediction and on the graph itself.

status python pytorch license


Demo

TODO: drop a 10 to 15 second GIF here showing load → click layer → ablate → fork → diff. docs/demo.gif


What it does

Step Action
Load Point it at a .pt / .pth checkpoint or a torchvision model name.
See The graph renders with weight magnitude mapped to visual mass, so heavy layers look heavy.
Cut Click a layer to zero it. No config file, no re-instantiation.
Fork The edited model branches off the original. Both stay loaded.
Diff Run the same input through both and compare outputs side by side, with changed regions highlighted on the graph.

Quickstart

TODO: verify these against a clean clone before publishing.

# backend
cd server
uv venv && uv pip install -r requirements.txt
uvicorn app.main:app --reload

# frontend
cd web
npm install
npm run dev

Open http://localhost:5173.


Stack

Backend: Python 3.14, PyTorch 2.12, FastAPI Frontend: Vite, React, TypeScript, Tailwind, d3 Models: CNNs first (torchvision ResNet, YOLO)


Why this exists

Nothing currently does load model → see it as visual mass → click → ablate → fork → re-run → diff.

Tool Interactive edits GUI Compares model variants
Netron no yes no
nnsight yes no (notebook library) partial
W&B / TensorBoard no yes training runs, not variants
forkpoint yes yes yes

The gap is real. This fills it.


Non-goals

  • Not a training tool. Inference only.
  • Not a deployment tool. No ONNX export, no quantization.
  • Not a TensorBoard replacement. Those compare training runs over time; this compares model variants live.
  • Not architecture-general. Transformers are out of scope for v0.

Roadmap

Version Scope
v0 Layer-zeroing as the single surgery primitive. CNNs only.
v0.1 Per-channel and per-filter ablation.
v0.2 Activation diffing on intermediate layers.
v0.3 Real knowledge distillation between forked variants.

Status

Pre-alpha. Built incrementally, APIs change without notice, nothing is stable yet.


forkpoint is a working name. The repo directory is still KD tool for historical reasons.

About

app for model optimization and visualization - Knowledge distillation, pruning etc.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages