Chunking and Embedding Strategy
How documents are split and embedded so retrieval returns coherent, citable units without fragmenting equations, tables, or procedure steps.
Chunking that respects structure
Naive fixed-length chunking fragments the exact things a fusion copilot must retrieve intact: an equation with its variable definitions, a table with its header, a procedure step with its precondition. Kronos chunks structurally — along document sections, procedure steps, and table boundaries — with overlap so a concept split across a boundary is still recoverable.
Chunk granularity by source
- Design documents: section-level chunks with heading context prepended
- Procedures: one chunk per step, carrying its precondition and abort criterion
- Fault records: one chunk per event, keeping symptom-cause-action together
- Tables and equations: kept whole; never split mid-structure
Each chunk is stored with its heading path, source id, machine tag, confidentiality tier, and validity window as metadata. Prepending the heading path to the embedded text lets a chunk carry its context — "REBCO magnet / quench protection / dump timing" — so retrieval distinguishes superficially similar passages.
chunk(document):
for section in structural_split(document):
text = heading_path(section) + '\n' + section.body
emit Chunk(text, meta={source, machine, tier, valid_from,
valid_to, kind})
keep equations/tables/steps atomic; overlap=1 unit at boundaries
Embedding model choice
The embedding model is chosen and evaluated for technical, domain-specific recall — retrieving the right physics or engineering chunk for a query written in operator language. It is validated on a labeled fusion-domain retrieval set and re-evaluated whenever it is changed, because a silent embedding change can degrade grounding across every copilot at once. Embeddings are versioned; a re-embed is a tracked, reproducible batch job on L0 compute.
Chunk quality directly bounds answer quality: a copilot cannot cite what retrieval never surfaced coherently. This is why chunking is treated as an engineered artifact with its own tests, not an incidental preprocessing step. Retrieved chunks flow into context construction and are cited per citation grounding.