← Tantular
RESEARCH REPORT · TANTULAR DISTILLATION PROGRAMME · 2026-08-25

Distillation for Tantular: a method roadmap for v2 and v3

Which knowledge-distillation techniques are worth attempting on an open-weight, locally-served Indonesian Office assistant — read against what the programme has actually measured, and against what the literature claims. Every internal figure cited here is traceable to a file in tantular-distillation; every external claim to a linked source.

EVIDENCE-GRADED · HEDGEDV1 TRAINING: NOT JUSTIFIED
MEASURED
A number recorded in a repository artifact, with the file named.
LITERATURE
A published finding from another setting, linked. Transfer to this setting is not assumed.
INFERENCE
Our reading, not established by either. Stated so it can be disputed.

Four findings, in descending order of confidence

Distillation is not currently justified for v1, because no capability gap has been observed that the base model fails.
MEASURED
On the three wired evaluations plus a faithful-editing pilot, Qwen/Qwen3.5-9B meets or exceeds every threshold the programme pre-registered for its own fine-tune (calibration/WHY_TRAINING_IS_NOT_JUSTIFIED.md, 2026-08-21). A training run against those numbers can only hold or regress them. This is a finding about the eval suite as much as about the model: three model-dependent gates over 60 items and one 10-item pilot is a narrow instrument, and every corpus behind it is synthetic.
Where distillation does become justified, the literature points away from what this pipeline is built to do.
LITERATURE
The pipeline generates a frozen corpus of teacher completions and fine-tunes on it — off-policy sequence-level KD in the sense of Kim & Rush (2016). The strongest recent results in LLM distillation come from moving the student’s own samples into the loop, either by changing the divergence (Gu et al., MiniLLM) or by scoring student rollouts on-policy (Agarwal et al., GKD; Lu, 2025). Adopting either is a change to the training loop, not to the corpus.
The teacher’s precision is the one loss that cannot be recovered downstream, and its magnitude here is unmeasured.
MEASURED
All existing traces come from a Q4_K_M int4 teacher under a signed waiver; the FP8 gate is unmet, not passed, and the waiver states plainly that no number in the repository bounds the quantization loss (calibration/INT4_WAIVER.md). Two rentals produced no treatment arm before the FP8 track was frozen. Any v2 claim inherits that hole.
The 9B→4B step (v3) is the strongest case in the whole sequence, and the one the scaling literature most directly supports.
INFERENCE
Distillation beats supervised training of the student when the teacher already exists and will be reused, and when the student’s compute budget is limited (Busbridge et al., 2025). A 9B that is already deployed, already voice-aligned, and being compressed for laptop serving is exactly that shape. We read the same result as an argument against the 30B→9B step being framed as a compute win: there, the teacher is rented per-run and the gain must come from capability transfer, not efficiency.

What has actually been measured

Three evaluations are wired, all run over the same endpoint and protocol (plain-chat, enable_thinking: false), plus a faithful-editing pilot. The thresholds were registered in train/qlora_9b.yaml before the baseline was taken. The base model passes all four.

FIG. 1 — BASE-MODEL RESULT AGAINST PRE-REGISTERED THRESHOLD. AXIS TRUNCATED AT 0.80. SOURCE: calibration/WHY_TRAINING_IS_NOT_JUSTIFIED.md, 2026-08-21
indonesian_voice · 40 items, rubric v20.9500 / 0.95
38/40 — exactly on the threshold. One item is worth 0.025.
edit_contract_output · 20 items, real add-in parser0.9500 / 0.90
19/20 contract_ok — parsed AND located AND applied.
office_json_contract · 382 tests, fetch mocked1.0000 / 0.98
Model-independent. Cannot detect an adapter regression; retained as build health.
faithful editing pilot · 10 items10/10 / none set
No threshold registered, so this is a signal rather than a gate.
WHAT THE SUITE DOES NOT TEST
The voice gate does not test faithfulness — the config states that a fabricated figure written in fluent professional Indonesian passes it. Its items and rubric were drafted and reviewed by the same author, and audience coverage is 5 of 40 items. The JSON-contract suite never calls a model at all.
WHY THIS MATTERS FOR A DISTILLATION CLAIM
A ceiling this close to 1.0 on a narrow instrument makes improvement unmeasurable and regression easy to miss. Before any v2 distillation run, the constraint is not GPU time; it is an evaluation with enough headroom and enough items to detect a 2-point change.

Why distillation — the general case, and its limits

Distillation trains a smaller student to reproduce a larger teacher’s behaviour rather than to fit the original labels. Kim & Rush (2016) established the sequence-level form now standard for generative models: run the teacher over the training inputs, keep its outputs as targets, and train the student on those. In their neural-translation setting the technique both compressed the model and, they report, largely removed the need for beam search at decode time.

Two properties of that formulation matter for this programme. First, it is off-policy: the student is trained on text the teacher produced, in contexts the teacher visits. Lu (2025) frames the resulting drawback directly — the student learns in contexts frequented by the teacher rather than the ones it will itself encounter. Second, it inherits the teacher’s errors as targets, with no mechanism to notice them.

The corrections that followed are all attempts to close those two gaps. Gu et al. (MiniLLM) replace the forward KL objective with reverse KL, on the argument that in generation the teacher’s distribution has far more modes than a small student can represent, and forward KL therefore forces the student to put mass on regions the teacher barely occupies; reverse KL is mode-seeking instead. They optimise it with a policy-gradient method and report that stabilisation tricks — teacher-mixed sampling, length normalisation — are necessary, without which the student degenerates toward short high-probability strings. Agarwal et al. (GKD) take the complementary route of training on the student’s own generations and having the teacher score them.

Recent work extends on-policy distillation to the case where teacher internals are unavailable: Ye et al. (2025) train a discriminator against teacher text as an adaptive on-policy reward and report surpassing sequence-level KD, with a 14B student reaching comparability with a much stronger proprietary teacher on one automatic chat evaluation. We flag that as a single-benchmark result on models unlike ours, not as a transfer claim.

The relevant question for Tantular is therefore not “does distillation work” — it plainly does in the compression sense — but whether the specific capability being imported is one the base model lacks, and whether the loop used to import it is the one the literature actually validated.

Why not, here, yet

Three separate arguments converge, and it is worth keeping them apart because they would be reopened by different evidence.

A · NO OBSERVED FAILURE
The programme’s own decision record is explicit that the gap must be found, not constructed: authoring more eval items in the hope of finding one, or hardening existing items until the base fails, were both ruled out on 2026-08-21 as manufacturing a justification. The evidence that would reopen it is named — failures reported by add-in users, failures visible in add-in logs, or failures on an approved real Office corpus, which has never been used.
B · THE DIFFERENTIATOR IS THE PRODUCT, NOT THE WEIGHTS
Word/Excel/PowerPoint integration, a real edit-contract parser and application path, intent routing, provenance and data-egress control, and local deployment are all listed in the repository as product properties that work against any competent base. None requires a fine-tuned model. A distillation run that improved reasoning by two points would not move any of them.
C · THE SCALING ARGUMENT CUTS AGAINST THE 30B→9B FRAMING
Busbridge et al. (2025) find distillation preferable to supervised learning when a teacher already exists or will be amortised over many students, and supervised learning generally preferable when a single student is distilled and the teacher must also be paid for. They also describe a capacity-gap regime in which a teacher that is too strong relative to the student yields a worse student. Renting a 30B per corpus refresh to produce one 9B sits on the wrong side of the first result; whether the second bites at a 30B→9B ratio is not something their fit answers for these architectures.

Set against that, the honest counterweight recorded in the repository is that the work was not wasted: the training path executes end to end, expanded LoRA targets attach at exactly the projected 80,216,064 parameters, a converted adapter genuinely binds in vLLM and changes output, and the gates now fail closed on a missing endpoint, a wrong model, an inert adapter, a hanging suite, and reasoning scored as an answer. The cost of establishing that the base is already sufficient was, by the programme’s own accounting, far less than a fine-tune that improved nothing and would have been hard to disprove.

Why an open-weight teacher, and where the licence risk actually sits

The programme’s choice of open weights is not primarily an ideological one; it removes three specific dependencies at once. There is no hosted API in the path, so generation is unblocked by default and costs nothing per trace beyond electricity or rental. The teacher can be moved between an on-premises box, a rented card and a laptop by changing one argument, because the client only ever sees a URL. And the data-handling regime can be enforced mechanically: hosts declare where data goes, prompts declare what they carry, and an unclassified prompt defaults to internal so that forgetting to label real material fails closed rather than shipping it to a rented GPU.

The licence question is narrower than “is it open”. It is whether the teacher’s terms permit a commercially-shipped model trained on its outputs. Apache 2.0 settles that for the dense teacher, and its config file records the operational reason: the model card places no restriction on training other models from its outputs, with a note to re-check before a commercial run because licences get amended.

The second teacher is the open legal question, and the reason is worth stating precisely, because “NVIDIA licences are permissive” is true and insufficient. The current Nemotron Open Model License (last modified 15 December 2025) opens by confirming the works are commercially usable, that derivative works may be created and distributed, and that NVIDIA claims no ownership of outputs. But an earlier NVIDIA family of terms — the Community Model License and the AI Foundation Models Community License — defines “Derivative Models” to expressly include models created by transferring patterns of weights, activations or output, naming distillation and synthetic-data generation as covered methods. Which document governs a given checkpoint determines whether a distilled student is itself a derivative work bound by the teacher’s terms.

THE ACTIONABLE FORM OF THIS
Confirm the exact licence text attached to the specific checkpoint before generating a corpus from it, not the family name — and record the licence, repo and revision per trace, which the provenance schema already does. This is a citation-level question with a documentary answer; it should not be resolved by analogy. We are not lawyers and this is not legal advice.

One further consequence of the open-weight choice is a hard constraint the roadmap in §07 has to respect: the only teacher path available without renting is an int4 Ollama endpoint behind a gateway, which is operator-visible and therefore restricted to synthetic prompts.

Teacher quality is the ceiling, and this one is quantized

The repository states the principle in its hardware rules: teacher quality is the ceiling on everything downstream, and it is the one loss that cannot be recovered later. The scaling literature agrees in the aggregate — lower teacher cross-entropy generally yields lower student cross-entropy, up to the capacity gap (Busbridge et al., 2025). The practical position is therefore uncomfortable: the entire existing corpus was generated at int4.

The waiver that authorises this is unusually careful about what it does and does not buy, and the distinction is load-bearing for any published claim. It permits the statement that the student imitates the teacher behaviour users receive today — validated in that the normalized protocol reproduces the deployed endpoint 52/52 per prompt — and that generation stayed on-premises with no third-party operator. It forbids any wording implying FP8 equivalence, or that the gate passed. The correct description, in its own words, is training from an int4 teacher under a recorded waiver with the FP8 comparison not performed.

0 / 260
v3 families varying across three independent passes at concurrency 4. Every completion byte-identical; the only difference between pass files is line order.
34.6%
of families diverging at production concurrency in the earlier v1 measurement — where three of 52 families flipped a metric fully between 0 and 1, which is what the replication rule exists to catch.
UNMEASURED
stability under different batching. All three v3 passes ran at concurrency 4; a concurrency-8 pass was abandoned after 180 of 260 requests failed on a shared production box.

The v3 stability result is the strongest measurement in the programme and also the one most at risk of being over-read, which the file itself pre-empts: three samples would very likely miss a mode appearing five percent of the time, so the defensible statement is that no variation was observed in three observations at these settings — not that the teacher is deterministic. The reason the result is credible at all is that it was checked rather than assumed: 220 of 260 families were generated in different batch windows with different co-resident prompts across the two earliest passes and still produced byte-identical completions.

The FP8 arm that would have bounded the quantization loss is frozen. Two rentals produced no treatment arm at roughly $3.35 of compute; the infrastructure was solved (driver gate, clean-venv stack check, two vLLM protocol fixes) and the blocker turned out to be model support — no native vLLM implementation for the teacher’s multimodal causal-LM class, which generated only control tokens.

Synthetic versus real, and the arithmetic of a coverage number

The clearest methodological lesson in the programme is about a metric, not a model. The inventory reported 260 of 260 families ready, zero blocked. That was true and uninformative: every family resolved to a source artifact, but the artifacts numbered 78, shared at a mean of 3.33 families per document and a maximum of eight. A training set built on it would have inherited each document roughly three times with an identical prompt.

Two things were right about that corpus even so, and are worth separating from the defect: no document spanned more than one split, so a train document never backed an eval family; and the unique-prompt view (n=78) was already the primary denominator in the cross-pass reporting, precisely because the family-weighted view was inflated. Source pack v3 resolved it by authoring per-family artifacts — 260 distinct documents for 260 families, zero digest reuse, zero documents crossing splits.

FIG. 2 — FAMILIES VERSUS DISTINCT SOURCE DOCUMENTS, SOURCE PACK V2 AND V3. SOURCE: calibration/SOURCE_COVERAGE.md (2026-08-17), calibration/VOLATILITY_v3.md (2026-08-18)
Source pack v2 — prompt set v2
260 families
78 distinct documents
49 repeated prompts
Source pack v3 — prompt set v3
260 families
260 distinct documents
0 repeated prompts
The fix cost an instrument. Volatility in v2 was measured from within-run repeat groups; with every prompt distinct there are no repeat groups left, so mode-frequency drift can only read 0 or 1 per pass. Distinctness and repeat-based measurement are in tension, and distinctness was chosen deliberately.

What no amount of that fixes is the source class. All 26 strata are synthetic. The inventory’s own note is the operative caveat: synthetic material supports pipeline generation and behavioural training, and supports no claim about performance on real Office documents. Per-family authoring buys corpus breadth and removes the repetition inflation; approved real sources are what any statement about real documents requires, and they are gated on approval, redaction and a per-host egress decision rather than on code.

FIG. 3 — DISPOSITION OF THE 260-FAMILY V3 CANDIDATE CORPUS. SOURCE: train/TRAINING_BLOCKED.md, README “CORPUS STATUS”
136 TRAIN
47 EVAL
27 CHAL
50 EXCLUDED
Only the mechanically verifiable subset was promoted. The 27 challenge examples are held out of both train and eval; a single split fingerprint spans corpus and promotion.
The 50 excluded examples sit in five subjective prose strata, pending an independent judge or human review. A further 28 non-router near-duplicate flags also await review. Neither is blocking.

The method roadmap

Eight candidate techniques, assessed against this pipeline as it stands rather than in the abstract. “Available” means it can be run on the hosts and serving paths the repository already describes. Verdicts are ours; the constraints behind them are cited.

TECHNIQUE
WHAT IT REQUIRES HERE
RISK IN THIS SETTING
VERDICT
Sequence-level KD
Kim & Rush, 2016
Nothing new. This is what the pipeline already implements: teacher completions frozen into a corpus, then SFT.
Off-policy by construction, and inherits int4 teacher error as ground truth with no mechanism to detect it.
AVAILABLE
BASELINE
Token-level logit KD
Hinton et al., 2015
Per-token teacher distributions, a shared tokenizer, and teacher and student co-resident or teacher logits cached at scale.
The only unrented teacher path is a chat endpoint that returns text. The rule against two co-resident 30B teachers at FP8 in 48GB constrains the alternative.
BLOCKED
BY SERVING
Reverse-KL / mode-seeking
MiniLLM, Gu et al.
White-box teacher access plus a policy-gradient trainer, with teacher-mixed sampling and length normalisation to stay stable.
Same access problem as above, and the reported degenerate failure mode — short repeated high-probability strings — would be invisible to a keyword-style voice rubric.
DEFER
UNTIL FP8
On-policy distillation
GKD, Agarwal et al.
Student rollouts scored by the teacher each step: both models served simultaneously, and a training loop that interleaves generation with updates.
Cost and orchestration, not method. Also: the provenance freeze assumes a static corpus, so the audit trail would need redesigning around rollouts.
HIGHEST
UPSIDE
Black-box on-policy (GAD)
Ye et al., 2025
Only teacher text, which the gateway already gives — plus a discriminator trained alongside the student as an adaptive reward model.
Adversarial training adds a second failure surface, and the published evidence is one automatic chat benchmark at a different scale. Reward gaming is a named concern in that literature.
WATCH
NOT ADOPT
QLoRA as the vehicle
already configured
A single 24GB card. r=32, alpha=64, 4-bit base, 32k sequence; 80,216,064 trainable parameters after the target-set correction.
Module naming. The hybrid architecture exposes split projections in training and fused ones in serving; targeting the fused name would train nothing, silently.
QUALIFIED
KEEP
9B→4B self-distillation
v3 in the sequence
An improved 9B to teach from, which is to say v2. The teacher is then local, reusable and free of rental and egress questions.
Depends on a step that is not currently justified. If v2 never happens, the 4B has to be distilled from something — and the 30B is the wrong ratio.
BEST
CASE
Constrained self-improvement
no weights trained
A held eval set and a rollback rule. No GPU, no corpus freeze, no adapter. Optimises prompts, recipes and routing rather than parameters.
Optimises against whatever the eval measures, which is the same narrow instrument as §01. Cheap to run, easy to overfit.
RUN FIRST
SEE §11

The pattern across the table is that the methods with the strongest published gains are the ones this pipeline is least shaped for, and the reason is architectural rather than budgetary: the programme’s central asset is a frozen, fully-provenanced corpus, and on-policy methods dissolve exactly that artifact. That is a real tension, not a defect to route around. A distillation programme whose auditability is a product feature should expect to pay for on-policy training in audit design, and should decide that consciously.

What distillation costs: voice and contract adherence

The training config carries the programme’s own observation as a comment on the gate block: distillation reliably buys reasoning while quietly costing Indonesian voice and JSON-contract adherence, and the Studio features break outright when the edit contract drifts. That is why the README instructs importing reasoning and agentic behaviour from the teachers while explicitly refusing to let either teach Indonesian — that capability is Tantular’s own and distilling over it loses ground.

The external literature supports the mitigation the pipeline has already chosen, for a reason worth being precise about. Biderman et al. (2024) compare LoRA against full fine-tuning on code and mathematics and find LoRA generally learns less in-domain — substantially so at low rank — but better preserves performance outside the target domain, with the extent of forgetting controlled by rank; they also report it maintains more diverse generations than full fine-tuning. For a model whose out-of-domain behaviour is the differentiator, learning less and forgetting less is the right side of that trade.

Two cautions follow. Their result also shows forgetting worsening with training duration and instruction fine-tuning inducing more of it than continued pre-training, which argues for short runs and for measuring voice after every epoch rather than only at the end. And rank is the dial: at r=256 they found forgetting on the mathematics task approaching full fine-tuning. The programme’s r=32 is conservative by that standard, which is consistent with its stated priority.

A GATE THAT LOOKED LIKE PROTECTION AND WAS NOT
The 382-test office_json_contract suite runs the add-in’s own JavaScript tests with fetch mocked. It never calls a model, so it returns the same result before and after training and cannot detect an adapter regression — measured 2026-08-19, and documented in place rather than quietly repointed. The model-dependent job belongs to the 20-item edit-contract gate, which pushes generated answers through the real parser and scores contract_ok: parsed, located and applied. Reporting parse_ok alone would be too weak, since valid JSON whose target string appears nowhere in the document parses cleanly and is useless.

We read that episode as the most transferable methodological result in the repository, and it is not about distillation at all: a green gate that structurally cannot fail is worse than no gate, because it is spent as evidence. The same programme also recorded a before baseline of exactly 0.0000 on both model-dependent gates, produced by scoring the model’s English reasoning as its answer — and correctly refused it, on the grounds that a baseline of zero makes any output an improvement and satisfies “no regression” trivially.

Quantization is not one decision but four, at different points

Precision enters this pipeline four times, and conflating them is how a quantization claim goes wrong. It is worth listing them separately because only one of the four is currently waived.

1 · TEACHER SERVING
int4 (Q4_K_M) today; FP8 is the pre-registered requirement and the gate is unmet. The hardware rules are unforgiving: FP8 needs Ada or Hopper, NVFP4 needs Blackwell, and the cheap A6000 is Ampere with no FP8 path at all. This is the waived one.
2 · STUDENT TRAINING
NF4 4-bit base with bf16 compute and gradient checkpointing, because full fine-tuning of a 9B does not fit 24GB. Qualified on hardware: NF4 load, LoRA attach, real TRL training step, save, reload.
3 · ADAPTER SERVING
vLLM with the adapter addressed by its own model id, verified to change output rather than merely load. The gates refuse a directory without PEFT weights, an id colliding with a base alias, or a report whose model-dependent answers were not requested from that adapter id.
4 · SHIPPED ARTIFACT
Merged and re-quantized to q4_k_m GGUF for Ollama on the user’s laptop. The student is therefore quantized again at the point of use — so the number that matters to a user is measured after that step, not before it.

There is a coherent position available here that is stronger than the apologetic one, and the waiver states it: if the product target is current int4 Ollama behaviour, then imitating the teacher users actually receive is a defensible objective, and privacy plus zero rental cost may reasonably outweigh maximising teacher quality. Tantular’s Indonesian-first, private, on-device positioning makes that a choice rather than a concession. What it is not, and the waiver says so, is evidence that FP8 would not have produced a better student.

The deployment budget adopted on 2026-08-22 belongs in this section for a reason that is methodological rather than technical. It was recorded before the gate was re-run under it, on the stated principle that a budget changed after seeing a result it then permits is not a policy but a rationalisation. The previous per-request ceiling was 30 s and the pulled model measured a slowest request of exactly 30.0 s — a pass only because the comparison is strictly greater-than, on an unloaded machine with the model already resident. The ceiling moved to 45 s while p95 stayed at 30 s, with three conditions kept absolute at zero: reasoning characters, empty answers, truncated answers. Any distillation that trades latency for quality is spending against that budget, and a 45 s worst case carries a product obligation — visible progress and cancellation — without which it is indistinguishable from a hang.

The 9B→4B step, and why the ordering is right

The sequence in the README trains the 4B last, from the improved 9B rather than from the 30B teachers directly, on the stated grounds that it then learns from something that already shares its target behaviour and voice. The literature gives that intuition a name and, partially, a formalism. Busbridge et al. (2025) report a capacity-gap regime in which a teacher too strong relative to the student produces a worse student, with the student’s loss following a power law in teacher cross-entropy that changes character between regimes. Earlier work goes further and proposes a law of capacity gap — that for an intended student scale there is an optimal teacher scale, determinable without exhaustive search.

We treat both as directional rather than prescriptive here. Those fits were established on families and objectives unlike a hybrid-attention 9B distilling into a 4B under LoRA over a 4-bit base, and the second is a proposition tested at pilot scale. What survives the transfer is the ordering claim, which is also the cheaper one: a 9B teacher for a 4B student is a smaller ratio than a 30B teacher for the same student, it is already voice-aligned, it is locally servable, and it raises no rental, egress or licence question. If any single distillation run in this programme is worth doing on efficiency grounds, it is this one.

The dependency is the awkward part and should be said plainly: v3 presupposes v2, and v2 is the step currently judged unjustified. If v2 never happens, the 4B either distils from the base 9B — which buys compression, not capability — or from a 30B at a ratio the capacity-gap literature warns about.

Recursive self-improvement as the cheaper alternative

Distillation changes weights. There is a second family of methods that changes the decision logic around the weights, and it is worth taking seriously here precisely because the programme has concluded the weights are not the bottleneck.

Yin et al. (2024) describe Gödel Agent, a self-referential framework in which an LLM-driven agent reads, evaluates and rewrites its own logic at runtime rather than following a fixed pipeline or meta-learning routine — implemented by manipulating runtime memory through monkey-patching. They report continuous self-improvement across reasoning and agentic tasks, and are unusually direct about the framing: the experiments demonstrate feasibility, they do not compare against heavily engineered agent systems, and they note that a system growing more complex through self-optimisation may need exponentially more intelligence to understand itself — so full self-reference at the outset can be lost as it evolves.

The constrained prototype that provides this report’s design language is the sober version of that idea, and its constraint is the interesting part. The loop is the same four conceptual steps — self_inspect, interact, self_update, continue_improve — but the thing the agent may rewrite is exactly one validated function, solve(query, kb). Candidates are parsed to an AST and rejected before execution if they contain imports, class/lambda/global/nonlocal definitions, dunder attribute access, banned builtins, or anything other than that single top-level function; what survives runs against a small safe-builtins namespace with no file I/O, network or subprocess. A candidate that errors, returns the wrong type, or lowers the score is rolled back.

1 · SELF_INSPECT
Represent the current policy, score and history as an inspectable state.
2 · INTERACT
Evaluate against the task environment, producing a scalar score plus feedback on the weakest cases.
3 · SELF_UPDATE
Validate a candidate rewrite, patch it in, re-evaluate, keep it only if it does not regress.
4 · CONTINUE_IMPROVE
Recursively request the next round of actions, up to a fixed max depth.

Three properties make this the right thing to run before a distillation run rather than after. It needs no GPU, no corpus freeze and no adapter, so the failure cost is minutes. Its rollback-on- regression rule is the same no-regression policy the training gates already implement, which means the two share an evaluation harness. And it optimises the layer the programme has already identified as the differentiator — prompts, recipes, routing — rather than the weights it has concluded are adequate.

The limits are equally clear and the prototype’s own documentation states them. Its scoring is deliberately simple keyword matching with a politeness/length bonus and a forbidden-term penalty; for serious work it recommends exact checks where possible, retrieval-grounded factuality, safety classifiers, human labels and held-out private tests. Its holdout environment is the honest configuration: the split is deterministic via a stable hash rather than Python’s salted one, category-balanced where possible, and holdout queries and missing terms never reach the feedback text, so the optimiser sees public-case signal only — with the aggregate holdout score treated as an audit signal to inspect after a run, not an optimisation target. And the sandbox is described as an experimentation boundary, not a hardened one: production use is said to require separate processes or containers, signed snapshots, a private holdout, and human review before any learned policy is deployed.

A self-improvement loop and a distillation run share one failure mode, and it is not the exotic one. Both optimise whatever the eval measures. On the evidence of §01 — a suite of three gates at or near ceiling, drafted and reviewed in-house, over an entirely synthetic corpus — the eval is the binding constraint on both, and it is cheaper to fix than either.

Where the sequence actually stands

One clarification underpins everything above. Today’s shipped tantular-office:0.4-9b is a runtime profile, not a fine-tune — a base model plus a system prompt, with no trained weights. The only genuinely trained Tantular is a 3B Indonesian-support LoRA on a different base family and domain, from 153 examples. There is therefore no Office checkpoint to continue from, and teacher distillation is structurally a v2 activity: it needs a v1 to distil onto.

FIG. 4 — MODEL SEQUENCING AND CURRENT STATE. SOURCE: README “SEQUENCING”, train/TRAINING_BLOCKED.md (2026-08-21)
NOW · SHIPPED
Qwen3.5 9B + system prompt
No weights trained. A Modelfile over the stock base.
IN PRODUCTION
V1 · OFFICE SFT
Qwen3.5 9B + Office SFT
Infrastructure qualified end to end. No training performed, no adapter produced.
NOT JUSTIFIED
V2 · DISTILLATION
v1 + teacher distillation
The subject of this report. Blocked on v1, on an eval with headroom, and on one licence confirmation.
DOWNSTREAM
V3 · COMPRESSION
v2 distilled into 4B
The 9B becomes the teacher. Strongest efficiency case in the sequence (§10).
DOWNSTREAM

Two items in the remaining sequence are worth separating from the model question because they gate production regardless of any training decision: the gateway key must be rotated before production use, and no claim about real Office documents is supported until approved real source material exists. Both are people-and-process work, not GPU work.

Limitations of this report, and what would change its conclusions

Single-programme evidence base. Every internal number here comes from one repository, largely one author’s calibration work, and no external replication. The self-critical quality of those documents is a reason to trust their direction, not their magnitudes.
No real-corpus measurement exists at all. Not a gap in this report but in the underlying evidence: all 26 strata are synthetic, so no claim about real Office document performance — positive or negative, base or distilled — is currently supportable.
Quantization loss is unbounded, not small. The FP8 arm is frozen with no treatment data. We have no basis for a claim in either direction about how much the int4 teacher costs the student.
Scaling and forgetting results are transferred across settings. Busbridge et al. and Biderman et al. studied different architectures, objectives and scales. We use them for direction and ordering, and none of the numeric thresholds in either transfers to a hybrid-attention 9B under QLoRA.
Fast-moving literature. On-policy distillation is an active area with results appearing faster than they are replicated. The pre-2026 anchors cited here are the settled ones; the newest results should be treated as leads.

What would move each conclusion

“Distillation is not justified”
One real observed failure from add-in users, add-in logs, or an approved real Office corpus — then an eval built around that failure which the base actually fails.
“Off-policy is the wrong loop”
A sequence-level KD run that moves a gate with headroom, or a demonstration that on-policy training can be audited to the same standard as a frozen corpus.
“int4 teacher is acceptable”
The FP8 treatment arm, on a 48GB Ada or 80GB Hopper host, once a runtime produces a valid answer channel. A material gap would be a finding about this student, not a retrospective invalidation.
“9B→4B is the best case”
Evidence that the 4B cannot hold the Indonesian voice threshold at all, which would make the compression step a product regression rather than an efficiency win.

Sources

EXTERNAL LITERATURE
01
Kim, Y. & Rush, A. M. (2016). Sequence-Level Knowledge Distillation. EMNLP 2016, 1317–1327. Origin of the sequence-level formulation this pipeline implements.
02
Hinton, G., Vinyals, O. & Dean, J. (2015). Distilling the Knowledge in a Neural Network. arXiv:1503.02531. The soft-target baseline; requires teacher logits.
03
Gu, Y., Dong, L., Wei, F. & Huang, M. MiniLLM: On-Policy Distillation of Large Language Models. arXiv:2306.08543; ICLR 2024. Reverse-KL objective, policy-gradient optimisation, stabilisation requirements.
04
Agarwal, R. et al. (2024). On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes. ICLR 2024. The GKD formulation; student rollouts scored by the teacher.
05
Lu, K. & Thinking Machines Lab (2025). On-Policy Distillation. Practitioner framing of the off-policy context mismatch. A lab blog post, not peer-reviewed.
06
Busbridge, D., Shidani, A., Weers, F., Ramapuram, J., Littwin, E. & Webb, R. (2025). Distillation Scaling Laws. ICML 2025 (PMLR 267). Compute-optimal allocation; the capacity-gap regime.
07
Biderman, D. et al. (2024). LoRA Learns Less and Forgets Less. arXiv:2405.09673; TMLR. Learning/forgetting trade-off, rank as the control, generation diversity.
08
Ye, T., Dong, L., Chi, Z., Wu, X., Huang, S. & Wei, F. (2025). Black-Box On-Policy Distillation of Large Language Models. arXiv:2511.10643. Generative Adversarial Distillation. Preprint; single-benchmark evidence.
09
Yin, X., Wang, X., Pan, L., Wan, X. & Wang, W. Y. (2024). Gödel Agent: A Self-Referential Agent Framework for Recursive Self-Improvement. arXiv:2410.04444; ACL 2025. The paper the constrained prototype narrows.
10
Zhang, C. et al. Towards the Law of Capacity Gap in Distilling Language Models. arXiv:2311.07052. Proposes an optimal teacher scale for a given student scale. Pilot-scale evidence.
11
NVIDIA. Nemotron Open Model License (last modified 15 Dec 2025) and Community Model License. Contrasting definitions of “Derivative Models” with respect to distillation and synthetic data.
12
Constrained Gödel-Agent Prototype documentation (2026). Loop, safety boundary, AST validation rules, eval-set schema, holdout policy. Supplied with this project; also the source of this report’s design language.
INTERNAL ARTIFACTS — TANTULAR-DISTILLATION
README.md — hosts, teachers, sequencing, corpus status, gates
calibration/WHY_TRAINING_IS_NOT_JUSTIFIED.md — 2026-08-21
calibration/INT4_WAIVER.md — accepted 2026-08-13
calibration/INT4_CLOSURE.md — closed 2026-08-17; FP8 arm frozen 08-18
calibration/SOURCE_COVERAGE.md — 78 vs 260 documents
calibration/VOLATILITY_v3.md — 0/260 across three passes
calibration/DEPLOYMENT_BUDGET_POLICY.md — 2026-08-22
train/TRAINING_BLOCKED.md — repository at 6b07cf8
train/qlora_9b.yaml — targets, gates, export
configs/teachers/*.yaml — licences, repos, sampling
Compiled 2026-08-25 against the repository state described in train/TRAINING_BLOCKED.md. Internal figures are quoted as recorded, not re-derived. External findings are attributed and dated; transfer to this setting is flagged where assumed. Nothing here is legal advice.
END OF REPORT