nightingale
The groupant beside models/nightingale.groupant in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.
Facts
Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.
Components
| component | label | where |
|---|---|---|
| Approximant | partial source derived | Forward |
| Ast | not materialized | |
| Composition | partial source derived | Composition |
| Cost | partial source derived | Cost |
| Descriptant | partial source derived | Descriptant |
| Invariant | partial source derived | Invariant |
| Tests | finite evidence | Tests |
Obernants
The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.
| relation | type | label | where |
|---|---|---|---|
| Behavior complement | behavior complement | partial source derived finite checks | Behavior complement |
| Reverse reconstruction | reverse reconstruction | partial source derived finite checks | Reverse reconstruction |
Model text
Descriptant
Nightingale (mova-nightingale): one per language, each with its own Sol, sitting under the Eel. It keeps the language's naturalness model on the CPU โ form uni-, bi- and trigrams, lemmas, foreign tags and the Elephant's dependency patterns, counted by register label โ as one standard per language plus small learned deltas per dialect and style; hands versioned models to the Eel, whose lm-<lang> rounds gate them on held-out bits per token and install them; judges words and phrases of translations against their alternatives and a soft hand list of loans; answers English through Mova's reader and deputy; and scans parallel pairs for needless loans and needless purism, with review-only proposals.
Forward
sources -> units -> count (Counter, wordgraph::extract) -> parts -> merge (k-way, prune, lineage) -> model.ngl + meta.json -> delta::learn -> deltas.tsv -> handoff gen-<n> + READY -> round (Eel lm-<lang>: current vs candidate bits per token on the frozen dev) -> the Eel installs; prompt -> ask::read | Deputy with Hands(status, proposals) -> English; work: count_new -> freeze_dev -> build_handoff -> scan_step -> consult_step -> proposals.
Invariant
Dev documents are never counted; the same parts give the same model bytes in any order; a part, a model and a handoff exist only complete (sidecar, meta, READY last); deltas belong to their model's lineage; a listed loan keeps its counts; nothing is deleted; the Nightingale never installs its own model and never holds the GPU.
Cost
Counting about 40 000 tokens a second a thread (English tier-1, 2026-11-06: 47.3 M tokens on 3 threads in 5.5 min, 2.0 GB peak); a handoff merge and delta learning about a minute; the served model in memory (2.2 GB for the 47 M-token English probe).
Composition
Leaves are file groupants under tools/nightingale/src/*.rs.groupant and tools/nightingale/tests/*.rs.groupant; the dependency patterns are the word graph's extraction (wordgraph); tree stores are treestore's; the deputy is mova-octopus; the Sol's terminal rules are nautilus::teacher's. Operationally the Nightingale sits under the Eel (eel-native-learning): its round child is the Eel's native round contract, and its installed model is the Eel's state. Interaction checks: tests/model.rs (count, merge, deltas, handoff and the round together) and tests/english.rs (reader, deputy, scan and Sol together).
Behavior complement
No GPU; no install of its own model; no ban from the hand list; no list, manual or model written from a Sol answer; no Sol question without the operator's word; no proposal admitted.
Reverse reconstruction
Part sidecars and docs files, meta.json (parts and lineage), deltas.tsv (each delta's counts), work.jsonl, english.jsonl, sol.jsonl, proposals.jsonl, scan.json and chosen.json recover what was counted, built, asked and proposed. Evidence status: source-derived with finite checks.
Tests
Checks
tests/model.rs and tests/english.rs with the 2026-11-05 model; negative controls: a shuffled corpus (4.52 against 1.53 bits per token on the synthetic dev; 10.53 against 8.48 on one real tier-1 shard), a listed loan penalised but retrievable, a random label split learning no delta (red with trigrams before the Bonferroni bar). These are finite fixtures and measurements; not a proof.
History
2026-11-06 ยท document
Epoch 2026-11-06
First model: the Nightingale as the Eel's CPU helper per language, with variety deltas over a standard (operator's principle of 2026-11-06).
Provenance
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/models/nightingale.groupant/