Instructions to use FerrellSyntheticIntelligence/fsi-anomaly with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use FerrellSyntheticIntelligence/fsi-anomaly with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf FerrellSyntheticIntelligence/fsi-anomaly # Run inference directly in the terminal: llama cli -hf FerrellSyntheticIntelligence/fsi-anomaly
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf FerrellSyntheticIntelligence/fsi-anomaly # Run inference directly in the terminal: llama cli -hf FerrellSyntheticIntelligence/fsi-anomaly
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf FerrellSyntheticIntelligence/fsi-anomaly # Run inference directly in the terminal: ./llama-cli -hf FerrellSyntheticIntelligence/fsi-anomaly
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf FerrellSyntheticIntelligence/fsi-anomaly # Run inference directly in the terminal: ./build/bin/llama-cli -hf FerrellSyntheticIntelligence/fsi-anomaly
Use Docker
docker model run hf.co/FerrellSyntheticIntelligence/fsi-anomaly
- LM Studio
- Jan
- Ollama
How to use FerrellSyntheticIntelligence/fsi-anomaly with Ollama:
ollama run hf.co/FerrellSyntheticIntelligence/fsi-anomaly
- Unsloth Desktop
- Docker Model Runner
How to use FerrellSyntheticIntelligence/fsi-anomaly with Docker Model Runner:
docker model run hf.co/FerrellSyntheticIntelligence/fsi-anomaly
- Lemonade
How to use FerrellSyntheticIntelligence/fsi-anomaly with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull FerrellSyntheticIntelligence/fsi-anomaly
Run and chat with the model
lemonade run user.fsi-anomaly-{{QUANT_TAG}}List all available models
lemonade list
- Atomic Chat
Upload agent_notes.md with huggingface_hub
Browse files- 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**
|