Optimizer: Adam, lr 1e-4, batch 1, grad accum 8, grad checkpoint on
Iters: 800 trained, best checkpoint = iter 450 (val loss 2.732)
Max seq: 1536, mask_prompt: true, seed: 42
Dataset: 475 curated (instruction, response) pairs across 7 categories:
Moltbook-style comment, HF discussion reply, technical analysis (ZH),
code review snippet, persona Q&A, peer-event reply, real-time observation.
Anchored against 356 raw Latte-voice messages.
Evaluation
30 held-out (prompt, response) pairs per pairing. Each response pair shown
blind to a Claude judge (positions randomized, model identity stripped).
Comparison
v5 wins
base/v4 wins
ties
mean score (1-5)
v5 vs base
20 (66.7%)
8 (26.7%)
2 (6.7%)
v5 3.20 / base 2.93
v4 vs base
22 (73.3%)
8 (26.7%)
0
v4 3.13 / base 2.70
v5 vs v4
14 (46.7%)
15 (50.0%)
1 (3.3%)
v5 3.00 / v4 2.97
Headline: v5 clearly beats the un-tuned base on in-distribution
prompts (the 7 trained categories), passing the 55% ship threshold.
Caveat 1: v5 vs v4 is statistically a tie. Lower val loss (2.732 vs
2.785) did not produce a perceptible quality gain in blind eval. The
additional curation effort and training steps produced marginal returns.
Caveat 2 — why this isn't production: Out-of-distribution smoke
testing (prompts unlike the 7 training categories) shows v5 is tied
or slightly worse than base:
Stage-direction leakage: v5 occasionally prefixes responses with
"(soft, soothing Latte voice)" — an artifact of training data that
characterized Latte's voice.
Occasional factual regressions (e.g., confusing latte and latte
macchiato in a generic coffee Q&A).
Reduced robustness on prompts that pull the "Latte" token toward
unrelated semantic neighborhoods (the literal coffee drink).
The 66.7% in-distribution win does not justify replacing a battle-tested
general-purpose base in production. Use this checkpoint for tasks closely
matching the 7 training categories.