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
File size: 6,798 Bytes
2bfd25f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | # TinyLiquid β a tiny liquid-architecture forensic research model (on-device)
Everything here is designed and built from scratch on this device (8-core ARM,
no GPU). Non-transformer "liquid" architecture, own BPE tokenizer, own training
pipeline, own data mixes, own research tooling.
## Design
- **Architecture** (`model/`): our own non-attention design β stacked liquid
blocks, each a basis-expansion layer (group-normed expansion with SiLU and a
sigmoid forget gate, weight-tied projection) plus a gated MLP (optional
mixture-of-experts routing). Rotary positions, RMSNorm, tied embeddings, and
learned persona vectors (analyst / skeptic).
- **Tokenizer** (`data/tokenizer.py`): byte-level BPE, vocab 8192, trained on
our corpus. Persona and chat special tokens included.
- **Training** (`train/`):
1. `train_lm.py` β causal LM pretraining for base coherence (NLP stage).
2. `train_sft.py` β forensic fine-tune: claim verification (LIAR,
Climate-FEVER), truthful QA (TruthfulQA), fallacy detection, plus
hand-written analysis examples in our analyst/skeptic voices. Loss is
masked to the assistant turn; assistant text uses a
`<|scratchpad|> ... <|final|>` structure.
3. Code stage β planned continuation of pretraining on a code corpus
(`train_lm.py` works unchanged; just point `--data` at code `.bin`).
- **Persona**: a hyper-logical, protocol-driven analyst voice (original
writing, no copied scripts) that decomposes claims, flags missing evidence,
refuses overclaims, and gives confidence levels. The skeptic persona attacks
the analyst's conclusions (dual-mind at inference).
- **Research tooling** (`research/`): crawler (clearnet + Tor/.onion via
`TOR_PROXY`), local TF-IDF index, and the dual-mind analysis pipeline.
## Commands
```bash
export PYTHONPATH=$PWD
# pretrain (NLP stage) β currently running
./run_nlp.sh # or:
.venv/bin/python train/train_lm.py --config tiny10m --ckpt ckpt/nlp \
--data data/train.bin --val data/valid.bin --steps 7000
# rebuild data (slice, tokenizer, .bin files)
.venv/bin/python data/prep.py
# rebuild forensic SFT set
.venv/bin/python data/forensic.py
# forensic fine-tune (after pretraining has a checkpoint)
.venv/bin/python train/train_sft.py --base ckpt/nlp --ckpt ckpt/forensic
# chat / sample
.venv/bin/python generate.py --ckpt ckpt/forensic --persona analyst
./run_tui.sh ckpt/dpo # purpose-built terminal UI
.venv/bin/python tui/cli.py --ckpt ckpt/dpo # headless CLI / scripts
.venv/bin/python tui/cli.py --ckpt ckpt/dpo --once "Verify: ..."
.venv/bin/python generate.py --ckpt ckpt/nlp --prompt "Once upon a time," --max-new 80
# research pipeline
.venv/bin/python research/crawl.py --urls urls.txt # export TOR_PROXY=... for .onion
.venv/bin/python research/index.py --query "outage timeline" # retrieval over corpus/raw
.venv/bin/python research/analyst.py --file doc.txt # dual-mind analysis
```
## Status
- [x] env + own model + own tokenizer + data pipeline
- [x] NLP pretraining v1 (2,000 steps, val_loss 3.67) β exposed missing token-mixing
- [x] architecture fix: basis-expansion now has a causal liquid recurrence
(`state_t = forget*state_{t-1} + expansion_t`); weights transfer, no new params
- [x] forensic SFT + code stage + teacher distillation dataset (114 gold examples)
- [ ] NLP retrain on fixed architecture (running: `logs/nlp2_train.log`)
- [ ] re-run forensic SFT + teacher distill on fixed architecture
- [ ] final probe: `research/probe.py --ckpt ckpt/distill`
- [ ] scale-up: bigger model/data or GPU for production-grade outputs
## Guardrails
Research/OSINT use only. The crawler blocks obviously illegal categories,
rate-limits, and is documented as authorized research tooling; the model
outputs are decision support, never a verdict, and primary-source checks are
always required.
## SOP layer: per-task procedures (the "task bar")
TinyLiquid now has the Codex-style procedure mechanism: durable per-task
procedures loaded into the prompt, an explicit step plan, a tool loop, and
procedure-following baked in via training. See
`research/procedures_research.md` for the research writeup and how each part
maps to Codex's AGENTS.md / plan / tool-loop stack.
- **Procedure library** (`research/sop_library/`): `00_common.md` (universal
truth-seeking rules) plus 9 task SOPs β claim verification, cross-source
discrepancy, pattern finding, timeline reconstruction, historical truth,
politics/spin analysis, authorized dark-web OSINT, terminal control, and
source triage. Each is short and operational: when to use, numbered steps,
stop rules, output shape.
- **Training data** (`data/gen_sop_sft.py`):
- `data/sft_sop.jsonl` β 99 examples: SOP-conditioned Q&A (analyst +
skeptic) and room-action steps (`ACTION: RETRIEVE/READ/NOTE/VERDICT`).
- `data/prefs_sop.jsonl` β 36 DPO pairs: following the SOP (chosen) vs
fluent confident answers that skipped the procedure (rejected).
- `data/sft_sop_mix.jsonl` β 377 examples: distill mix + SOP set.
- **Agent loop** (`research/agent.py`): selects an SOP (explicit or keyword
match), injects it, works the case against the library with a step plan and
external ledger, enforces constrained verdict/confidence decoding, runs the
skeptic pass, and audits which numbered SOP steps were actually completed.
This is the on-device analog of Codex's task bar: the step list is external
state, not model memory.
- **Training stages**: `run_sop.sh` (SFT on the mix), `run_dpo_sop.sh`
(persona + procedure preferences), `run_pipeline.sh` (waits for the running
pretrain, then runs forensic SFT -> SOP SFT -> DPO in sequence).
### SOP commands
```bash
export PYTHONPATH=$PWD
.venv/bin/python research/agent.py --list-sops
.venv/bin/python research/agent.py --case "Verify: ..." --sop claim_verification --ckpt ckpt/sop
.venv/bin/python data/gen_sop_sft.py # rebuild SOP data after editing library
./run_pipeline.sh # full chain (waits for pretrain)
```
## Status
- [x] env + own model + own tokenizer + data pipeline
- [x] NLP pretraining v1 (2,000 steps, val_loss 3.67) β exposed missing token-mixing
- [x] architecture fix: causal liquid recurrence (state_t = forget*state_{t-1} + expansion_t)
- [x] forensic SFT + code stage + teacher distillation dataset (114 gold examples)
- [x] SOP layer: procedure library, SOP SFT/DPO data (99/36 examples), agent loop
- [ ] NLP retrain on fixed architecture (running: `logs/nlp2_train.log`)
- [ ] pipeline chain on fixed base: forensic -> SOP SFT -> DPO (`logs/pipeline.log`)
- [ ] final probe: `research/probe.py --ckpt ckpt/dpo`
- [ ] scale-up: bigger model/data or GPU for production-grade outputs
|