Skip to content

v0.2.0-alpha — Watch Your Model Train

Latest

Choose a tag to compare

@mattmireles mattmireles released this 08 Apr 19:25
· 30 commits to main since this release
Screenshot 2026-04-08 at 12 09 51 PM What's New ### **A Real-Time Training Visualizer** You can now watch your model train. Open a browser. A 3D amber galaxy rotates in sync with your model's own layer structure, updating every step. Loss, learning rate, gradient norm, and memory pressure stream live via Socket.IO. Nothing to install: the visualizer auto-installs Flask and its dependencies on first run.

Fourteen commits went into this. It was redesigned from scratch halfway through — the first version worked, the final version is a quiet instrument. Toggle panels on and off. Dock it to idle. The galaxy changes shape when you change models.

Gemma 4 Instruction-Tuning: Label Masking Fixed

A silent bug was training the model on padding tokens during instruction-tuning. Labels are now masked correctly. If you fine-tuned Gemma 4 in instruction mode before this release, retrain. The LoRA learning rate has also been bumped to compensate for the corrected gradient signal.

Try It Without Bringing Your Own Data

A sample-text dataset is now bundled in the repo. Clone, install, run the wizard — it works on the first try without a CSV, a GCS bucket, or a BigQuery table.

What Changed (Full List)

  • Training visualizer: wired callback into Gemma Trainer, Socket.IO live metrics, 3D galaxy, per-step logging
  • Visualizer: amber galaxy, working toggles, idle dock, accessibility pass
  • Visualizer: fixed Socket.IO emit, fixed DOMContentLoaded boot race, hardened JS, modularized dashboard
  • Visualizer: auto-installs on first run; stopped the transformers downgrade loop that broke it
  • CI: visualizer contract tests skipped on Gemma 4 jobs that run without Flask
  • Gemma 4: fixed instruction-tuning label masking; bumped LoRA LR
  • Gemma 4: aligned transformers pins with pyproject; hardened wizard dependency policy
  • Sample dataset: bundled sample-text CSV; wizard now bootstraps config.ini on first run
  • Root cleanup: configs, docs, requirements, entrypoints reorganized out of the top level

Why It's Still Alpha
The core caveats from v0.1.0-alpha stand. APIs and config schema will change. Image and audio paths have lighter test coverage than text. The vision memory estimator is a heuristic. Gemma 4 requires its own requirements-gemma4.txt stack.

The visualizer is new and has had one week of testing on one machine. It will surface bugs on yours.

Install & Upgrade

git pull
pip install -e ".[viz]"   # or: uv pip install -e ".[viz]"

The wizard will auto-install visualizer dependencies if you haven't. Or install them explicitly:

pip install flask flask-socketio
Then run:

python train.py
The visualizer URL prints to the console when training starts. Open it in any browser.