Context

ADR-003 gave the SOTA scheme seven topics and the LIT scheme those seven plus five more, on the ground that “the reading list covers ground the practice registry does not”. ADR-020 then found that sentence true of two of the five and false of two others, and scoped the recommendations by kind of claim rather than by domain.

What neither decision did was look at whether the seven are enough. They are not, and the evidence is already in the record rather than hypothetical.

Seven practices about serving, filed under four different topics:

practicefiled asabout
SOTA-005model-stabilityrunning statistics at inference
SOTA-023model-architecturemulti-query attention for memory bandwidth
SOTA-105attention-techniquesPagedAttention for batch inference
SOTA-113systems-optimizationcontinuous batching
SOTA-115systems-optimizationprefill/decode overlap
SOTA-163systems-optimizationmicroscaling quantization formats
SOTA-185systems-optimizationerror-compensating post-training quantization

Six about adaptation, across four more: SOTA-038 (model-architecture), SOTA-123 (data-pipeline), SOTA-151 (attention-techniques), SOTA-154 and SOTA-184 (training-optimization), and the preference-training pair.

A reader who wants to know what this record says about serving has to visit four pages and guess. That is a category that exists in the corpus and not in the list, which is the second test in DP-009.

The LIT scheme has had the right words for both since ADR-003: inference-optimization and adaptation-and-tuning.

Decision

Add inference-optimization, adaptation-and-tuning and representation-and-encoding to record/practices.d/tags.yaml, taking the practice vocabulary from seven topics to ten, and retag the practices above onto them.

The third arrived differently from the first two and the difference is the interesting part — see How the third topic was found, below.

Both words are already the LIT scheme’s, which is the point: where the two vocabularies name the same kind of claim, they should use the same word.

Amended in #114. That sentence was true of the first two topics and this decision did not act on it for the third. representation-and-encoding was added to the practice vocabulary alone, so from here until #114 the two vocabularies named the same kind of claim with a word only one of them had — exactly what the paragraph above says not to do. The topic is now in record/literature.d/tags.yaml as well.

It surfaced the way these things do: a NOTE on a tokenization paper had no topic to take, because NOTE inherits LIT’s vocabulary. LIT-003 — the BPE paper — had been filed under model-architecture for want of anything better, and is retagged. What stays LIT-only is generative-modeling and vision-and-graphics, because those name a domain rather than a kind of claim, and ADR-020’s argument against domain topics is unchanged — a topic spent naming the domain is a topic not spent naming the claim.

analysis-and-evaluation is not added. It is the third kind-of-claim word in the LIT extras, and there is no practice in the record that wants it: the evaluation-adjacent notes (LPIPS, BIG-bench, the lottery-ticket pair) carry no instruction. Adding a category to hold zero documents is DP-008’s corollary run backwards. It goes in the moment a document needs it.

Alternatives considered

  • Leave the seven and let serving practices scatter. What has been happening, and the scatter is the argument against it. It also produces the reverse error this decision is a response to: with no home for a serving claim, the reflex is to read a paper about serving as out of scope, which is DP-009’s reading (1).
  • Add one broader topic — deployment or similar — covering both. Fewer categories, and it merges two decisions that are made by different people at different times: how to adapt a trained model, and how to serve one. The LIT vocabulary already separates them and nothing has gone wrong with that.
  • Add analysis-and-evaluation too, for symmetry. Rejected above: no documents.
  • Add a representation or encoding topic. Deferred, and flagged rather than ignored: LIT-064, LIT-086 and LIT-111 all carry input-encoding or representation claims with nowhere to go, and the record’s existing encoding practices are scattered the same way serving was (RoPE under attention-techniques). The difference is that no practice has been filed on those yet, so the retagging evidence this decision rests on does not exist. The honest move is to file one and see where it wants to live.

How the third topic was found

The first two topics came out of a search over practice titles for words like inference, serving, fine-tune. That query works and it has an obvious defect, which is DP-004’s: it finds the categories you already suspect, because you have to name them to search for them.

The third came out of a query that names nothing. Take the declared relation graph — extends, corrects, compared_against and their converses — find its connected components, and ask whether each component sits inside one topic. A lineage is a set of practices the record has asserted belong together; a topic is a set it has declared belong together. Where those disagree, one of them is wrong.

Twelve components span more than one practice. Three crossed a topic boundary:

  • SOTA-063, SOTA-151, SOTA-153 — RoPE, extending context by rescaling it, and dropping it from the global-attention layers. One argument about positional encoding, filed under model-architecture, adaptation-and-tuning and attention-techniques. Adding SOTA-179, which truncates the rotary low frequencies, makes four practices across three topics, and SOTA-007 on tokenization is the same shape. That is the evidence this decision’s other two topics rest on, and nobody had to think of the word “encoding” to find it.
  • SOTA-145, SOTA-146, SOTA-154 — the GRPO baseline, its correction, and the evolution-strategies alternative it is compared against. This crossing was created by the first draft of this decision, which moved SOTA-154 to adaptation-and-tuning and left the other two behind. Repaired here: all three are post-training.
  • SOTA-085, SOTA-161 — use flash attention, and keep the attention output in FP32 because flash attention. Genuinely both an attention technique and a stability claim, and left crossing. Not every disagreement is an error; some are the vocabulary being lossy, and a check that cannot say so is a check that will be ignored.

After the retagging, one of twelve components crosses, and it is the third.

The check is worth having as a check. It needs no new machinery — luria.edges.graph() already builds the cross-scheme relation graph, and Graph.inbound() already exists — and unlike DP-009’s second test it does not depend on somebody guessing the right search term. Proposed to luria rather than built here, because every record with relations and tags has this question.

Consequences

luria lint enforces exactly one primary topic per practice, so the retagging is mechanical and checkable, and the tag pages regenerate.

The two new pages will be small at first — seven and six entries — which is the right size for a category that was already there implicitly.

This is the third decision in a row about the same vocabulary (ADR-003 set it, ADR-020 stopped it being read as a domain boundary, this one widens it), and that is worth naming as a pattern rather than a coincidence: a vocabulary written once for a corpus of 119 practices is now governing 185 across a wider subject, and the seven categories were transcribed from a 2024 document that predates most of what the record now holds. Expect a fourth.