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
| # 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 | |