← TinyGPT · docs · devlog · roadmap · speedup
source: docs/RETROSPECTIVE.md · view on GitHub ↗

TinyGPT — retrospective and forward plan

Historical strategy note. This captured the 2026-06-11 Pace/small-specialist failure arc and remains valuable learning evidence. It is not the current project plan. Current active scope lives in PROJECT_STATUS.md, docs/NEXT.md, and docs/factory/.

Written 2026-06-11 after the clarify-v1 experiment failed and the small-specialist training bet closed. This doc replaces no other; it records what we learned at high cost so future work doesn’t relearn it.

What we tried to do

Train small models (originally 0.6B, later 4B) locally on a curated corpus to beat larger / cloud models on a well-defined task — first Pace’s planner, later a public clarify-discipline benchmark. The factory (corpus generation, amplifier, ship gate, eval matrix, training loop, ANE serve, grammar-constrained decoding) was built to support that bet.

What we found out

Each finding below is backed by a numbered run in ~/.cache/tinygpt/runs/ or a fixture suite in evals/.

1. A 0.6B model memorizes behaviors; it does not learn rules.

Eleven training versions (v1–v11) on Qwen3-0.6B never beat zero-shot larger models on Pace’s gate. v11 reached train loss 0.001 (full memorization of 709 rows) and still refused 0/30 held-out out-of-scope prompts. Surface-regular triggers (e.g. “delete all” → destructive) generalized; judgment (refuse, clarify) did not.

2. Zero-shot Qwen3-4B beats every trained 0.6B we shipped.

On the same h2 held-out suites: 80% OOS / 0% clarify / 70% destructive / 66.7% happy-path, untrained, at 2.3 GB int4. Competence comes from scale; the right move is fine-tuning a model that already has the capability you want, not creating capability through training.

3. Small-corpus LoRA on a competent base causes catastrophic

interference — and we have numbers.

clarify-v1: 38 contrastive rows trained on Qwen3-4B regressed the untrained OOS dimension from 80% → 33% (−47pp), while moving the trained ambig dimension only from 0% → 5%. Training on a slice of behaviors moved the whole intent distribution. If you fine-tune a strong base, the corpus must cover every dimension you don’t want to regress, with enough density per dimension.

4. The clarify-not-guess failure is universal.

Every model we tested on the held-out clarify suite — trained 0.6B specialists, Apple Foundation Models, Qwen3-4B zero-shot, Claude via CLI — scored 0–15%. All of them confidently picked one option instead of asking. This is a real product gap in local-and-cloud assistants generally, not a TinyGPT-specific failure.

5. Apple Foundation Models is the refusal champion, action-blind.

OOS 97%, destructive 70%, happy-path 13%, clarify 5% (guided @Generable required — plain text scored 0/60 by refusing correctly in prose that the runner couldn’t parse). Worth using as a free, zero-footprint refusal pre-filter on Apple Intelligence Macs; not a Pace planner.

6. Eval infrastructure is a research instrument, not a chore.

Across the run we caught:

7. The runtime infrastructure outperformed the training bet.

Things that work and are reusable: tinygpt serve with grammar- constrained JSON masking (119 ms warm TTFW), --quantize int4|int8 in-memory (int8 = 2.3× decode at zero quality loss on v9), the 28-block ANE chain (17 tok/s decode, int8 per-block weights, fp32-compute / fp16-state, numerics gate green), the eval system that caught every finding in §6, the fm_bridge + fm_shim harness for benchmarking Apple FM, the contamination-checked h2 suites (60 fixtures).

What we now believe

Forward plan (where Sarthak’s time goes)

TrackWhatStatus
Pace, daily-useUse Pace daily, fix the things that break first. Voice loop, AX actions, retrieval, dictation — all wired.Active
TinyGPT, pausedActive development stops. The runtime + eval + harnesses are reference assets.Paused
Write-upOne public post on the small-corpus interference finding (this doc + clarify-v1 numbers + h2 suites + cloud baselines as evidence). Optional but cheap.Optional
QLoRA on 4B+, deferredOnly if Pace usage surfaces a specific capability gap that’s clearly worth fine-tuning and that fine-tuning won’t regress the dimensions Pace already relies on. Documented in docs/prds/qlora-large-model-finetune.md.Deferred
Core AI / M9Apple’s new framework is the right vehicle for whatever ANE work resumes. The M8 chain is reference code for that.Deferred

What you should NOT do

Artifacts inventory

One-line summary

We tried to train small models to beat big ones. We learned, with numbers, that a strong base zero-shot is a better bet than a small model trained — and that fine-tuning a strong base on a thin corpus breaks more than it fixes. Pace ships on the strong base; TinyGPT training pauses.