FerrellSyntheticIntelligence commited on
Commit
622d5b4
·
verified ·
1 Parent(s): 7095e28

Upload agent_notes.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. agent_notes.md +66 -0
agent_notes.md CHANGED
@@ -13,6 +13,72 @@
13
 
14
  ---
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  ## 1. What this project is
17
 
18
  - **Model:** `fsi-anomaly` (family: `fsi_felon-*`), a **25.4M-parameter**
 
13
 
14
  ---
15
 
16
+ ## PICK UP HERE — 2026-08-13 (current state, for any new machine/agent)
17
+
18
+ ### What this is
19
+ - **FSI-Anomaly**: an on-device, offline forensic-journalism / truth-verifier LLM.
20
+ Verifies claims, finds discrepancies and cross-source patterns, and answers in
21
+ Spock-style verdicts: `true / false / misleading / overclaim / contradiction /
22
+ abstain / unsubstantiated`. Built for researchers, journalists, whistleblowers,
23
+ and rabbit-hole truth-seeking.
24
+ - **Owner/team**: solo developer (licensed electrician, no funding), label
25
+ FERRELL SYNTHETIC INTELLIGENCE (FSI). Goal: free open-source small-model
26
+ family, HF downloads, grants/loans.
27
+ - **Device**: 8-core ARMv9 tablet, 7.4GB RAM + 12.3GB swap, no GPU. Everything
28
+ below was trained/reasoned on this device.
29
+
30
+ ### Model line (IMPORTANT — do not mix with the old 25M line)
31
+ - **Current line: `hybrid50m` + 16k tokenizer** (~50M params, d_model=320,
32
+ liquid architecture with MTP in pretrain only). The old 25M/8k line is
33
+ archived history (`ckpt/tiny25m*`, 8k tokenizer, old analyst stamp schema).
34
+ - **Canonical pretrain base:** `ckpt/hybrid50m_v16k_pretrain/model_5000.pt`.
35
+ - **Tokenizer:** `data/tokenizer16k.json`. ALWAYS pass `--tok data/tokenizer16k.json`;
36
+ the default 8k tokenizer crashes on 16k checkpoints.
37
+
38
+ ### Where we are (measured 2026-08-13)
39
+ - **SFT v25** (`ckpt/hybrid50m_v25_lora/best.pt`, 268 rows: 119 base + 149 gold):
40
+ battery main **0.184** / researcher **0.167** / red-team **0.038**.
41
+ - **DPO v25** (`ckpt/hybrid50m_v25_dpo/model_final.pt`, β=5.0 LFM2, 136 schema-matched
42
+ pairs, 1 epoch): loss 0.7146→0.6787 (real signal, NO v22 collapse), battery = exact
43
+ parity with SFT. DPO is no longer destructive; it needs more pairs + a better SFT base.
44
+ - **Merges** (`ckpt/hybrid50m_v25_merges/`): main-battery results so far —
45
+ soup **0.184**, taskarith_l0p5 **0.204**, ties_k0p2 in progress (all vs 0.184 baseline).
46
+ - **Release gates NOT passed:** main ≥0.40 / researcher ≥0.25 at ≥60% coverage,
47
+ red-team pass, multi-turn + real-task verification. Do NOT release until these pass.
48
+
49
+ ### Data (all handcrafted, no generators/scripts — discipline rule)
50
+ - **Gold: 198 / 3000** authored (`data/gold_700|800|900|1000`, `gold_3000_final`).
51
+ - **SFT staged:** `data/sft_v26.jsonl` = 317 rows (119 base + 198 gold, 28/class × 7 + 2 final).
52
+ - **Preference pairs:** `data/prefs_v26.jsonl` = 154 schema-matched (136 v23 + 18 new).
53
+
54
+ ### What is running on the tablet right now (2026-08-13)
55
+ - Chained, detached, one heavy job at a time:
56
+ merge candidate evals (main battery) -> `train/watchdog_lora_v26.sh` (SFT v26, ~2h)
57
+ -> `train/watchdog_dpo_v26.sh` (DPO v26, ~20 min).
58
+ - After v26: battery-eval SFT v26 + DPO v26, merge v26 candidates, then red-team +
59
+ multi-turn pipeline verification. Author more gold toward 3,000 in parallel.
60
+
61
+ ### Key commands (verified recipe)
62
+ - LoRA SFT: `train/train_lora.py --base ckpt/hybrid50m_v16k_pretrain --data <sft>
63
+ --tok data/tokenizer16k.json --ckpt <out> --val-bin data/valid16k.bin
64
+ --replay-bin data/train_phase2b16k.bin --replay-ratio 0.5 --epochs 3 --batch 4
65
+ --seq 512 --lr 5e-5 --r 16 --alpha 32.0 --dropout 0.05 --kl 0.1 --ppl-guard 60.0
66
+ --eval-every 25 --val-batches 4 --threads 6`
67
+ - LFM2 DPO: `train/train_dpo.py --base <best_sft> --data <prefs> --tok
68
+ data/tokenizer16k.json --ckpt <out> --val-bin data/valid16k.bin --epochs 1
69
+ --batch 4 --seq 512 --lr 8e-7 --lr-schedule cosine --lr-min 8e-8 --warmup-frac
70
+ 0.01 --beta 5.0 --margin 0.1 --apo-weight 0.2 --threads 6 --ppl-guard 60.0
71
+ --lora --r 16 --alpha 32.0 --dropout 0.05` (NO `--log-every` flag exists).
72
+ - Launch heavy jobs detached: `setsid nohup ./train/<watchdog>.sh >/dev/null 2>&1 </dev/null & disown`
73
+
74
+ ### Gotchas (measured, do not re-learn)
75
+ - Long jobs die with no traceback on this device -> always use resume-safe watchdogs + `.done` markers.
76
+ - Never stack two heavy torch jobs (RAM tight). One heavy job at a time.
77
+ - MTP is pretrain-only: post-training loads use `cfg.mtp_heads=0` + `strict=False`.
78
+ - Merges: pretrain base has `mtp_heads.*` keys that folded post-training ckpts lack;
79
+ merge scripts intersect keys (regression-tested in `tests/test_merges.py`).
80
+
81
+
82
  ## 1. What this project is
83
 
84
  - **Model:** `fsi-anomaly` (family: `fsi_felon-*`), a **25.4M-parameter**