ML Continuous Training Pipeline
Training pipeline behind fixin's Ruby and Sapphire engine

Built a fully on-device continuous training system into the fixin admin (macOS) application that automatically expands and refreshes the diagnostic model library without any manual CreateML work.
The pipeline: fetches raw candidate images from Brave Search API → scores them with a CLIP ViT-B/32 relevance model and perceptual-hash deduplication → trains or retrains classifiers for stale/missing labels using Swift + CreateMLComponents → packages updated CoreML models against the admin project's 4-level manifest (the single source of truth for model identity and label hierarchy).

Key design decisions:
-
Entirely on-device — no backend, no Python, no cloud training service
-
CLIP curation gate prevents low-quality or off-topic images from entering the training set
-
Manifest-constrained — pipeline never adds new labels; label changes remain a manual decision
-
FP16 quantization by default (FP32 opt-in)
-
Brave Search API (free tier) as the image source — selected over alternatives for cost and privacy reasons
This eliminates the manual dataset collection and model retraining loop that would otherwise require constant attention from a solo developer.