Joel Stevick

Conclusion · section 2 of 3

What will not

Fluency is independent of correctness. The one wrong distance in five runs reads exactly like the four right ones, and a better model narrows the one in five without changing how it reads. A pipeline that forwards the model’s text has no way to know which run it is on. A pipeline that checks the text against the source it gave the model does, and the check is the same sixty lines whichever model wrote the text.

The source is the thing. Every stage after Chapter 3 is about getting the right text in front of the model, and the check is about holding the model to that text. Neither stage trusts the model’s account of where a fact came from: the citation under an answer is written by code from the record the answer was checked against. Retrieval will get better, embedding models will get better, and the reason the citation is code will not change.

A stage that can be absent is a stage you can measure. Every model-backed stage in this pipeline was added to a working pipeline, measured against it, and built so that switching it off gives back the earlier pipeline exactly. That is what made the measurements in Chapters 6 and 7 possible: the reranker beat any weighting of the fusion because both could be run on the same questions. It is also what makes the pipeline safe to run on a day when one of its services is down.

Code decides. A model restates a question, a model picks three laws from twenty-four or thirty-two, a model writes two or three sentences, a model copies passages from a page. Four jobs, each one a judgement about language that code does badly. And at the end of each, code decides what to do with the result, by a rule a model cannot argue with: this string is in that string, this id is in that list, this number appears in that text. The jobs will change hands as models get better at the ones code does now. The decision will not.