Part VII · Harnesses
Ch 27. Which model answers?
Two models, one app
So far, one model has answered every question. Many apps have two or more: a small one that is cheap and quick, and a big one that is better and costs more. The harness decides which one answers. One way is a cascadecascade: A harness that asks a small, cheap model first and passes the question to a bigger one only when the small model seems unsure. Ch 27: ask the small model first, and pass the question on to the big one only when the small model seems unsure.[1]
So far, one model has answered every question. Many apps have several: a small one that is cheap and quick, and a big one that does better (Ch 12) but costs more for every token. The harness decides which one answers, and there are two common ways. A router looks at the request and picks a model before any of them answers. A cascadecascade: A harness that asks a small, cheap model first and passes the question to a bigger one only when the small model seems unsure. Ch 27 asks the small model first and passes the question on to the big one only when the small model seems unsure.[1][1]
How does a harness know the model is unsure? It can read the probabilities the model gave the tokens it wrote (Ch 2). Here are 40 short questions with checkable answers, put to Qwen2.5-0.5B-Instruct and to Qwen2.5-1.5B-Instruct, about three times its size.[2][2][2] The small model got 26 right and the big one 37. Move the line: every question the small model answered with less confidence than that goes to the big model instead.
At 60%, the harness passes on 15 questions and gets 34 right, for 70% of the cost of always asking the big model. At 80% it gets all 37 the big model would, and still saves a little. Confidence is a useful hint, not proof: the small model was 79% sure that Sydney is the capital of Australia, and only 25% sure of Ankara for Turkey, which was right.
At 60%, the harness passes on 15 questions and gets 34 right, for 70% of the cost of always asking the big model. At 80% it passes on 25 and gets 37, as many as the big model alone, for 95%. Every one of the small model’s 14 wrong answers had a confidence of 79% or less, but so did 11 of its 26 right ones, so a line high enough to catch every mistake also sends many good answers to the big model. Confidence is a hint, not proof: the small model was 79% sure that Sydney is the capital of Australia, and only 25% sure of Ankara for Turkey, which was right.
The numbers behind the slider
The confidence is the geometric mean of the probabilities the model gave the tokens of its answer, so a long answer isn’t punished for having more tokens:
The cost counts a call as the model’s number of weights: 0.49 billion for the small model and 1.54 billion for the big one, a ratio of . Every question pays for the small call, and the passed on pay for a big call too, so out of questions the cascade costs
of asking the big model everything: 32% with , and 70% with .
Simplified: real prices are per token and set by the provider, not by the number of weights, and a cascade adds a wait whenever it asks twice. Researchers have built cascades that matched the best single model at a small fraction of its cost.[1][1][1] A router avoids the second call by deciding up front, for example with a small model trained on which questions the big model wins; such routers have cut costs by more than half in some tests without lowering the quality of the answers.[3][3][3] Either way, it’s the harness, not either model, that does the choosing.
A harness can also skip the wait altogether. When it can predict the questions, it can have a big model answer them ahead of time and keep the answers, so no model runs while someone waits, and people can check the answers first; a question nobody predicted still needs a model.[4][4][4] In 2021, Google used its MUM model to find over 800 names for the COVID-19 vaccines in more than 50 languages, in seconds rather than the hundreds of hours it would have taken people. After people checked the list, Google Search used it to show up-to-date information about the vaccines.[5][5][5]
Recipe card
Recap
- An app can use several models, and the harness decides which one answers.
- A router picks a model up front; a cascade asks a small model first and passes the question on when its confidence is low.
- The threshold trades cost against quality, and confidence is a useful hint, not proof.
- Answers to questions you can predict can be worked out ahead of time and checked first.
- Confidence here is the geometric mean of the answer tokens’ probabilities; cost is of always asking the big model.
Next question: so far the harness has done all the deciding. The prompt in Ch 23 also listed “tools”. How can a model that only writes text use a calculator?
Sources
- Lingjiao Chen et al. (2023). FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance. arXiv.
- Qwen Team et al. (2024). Qwen2.5 Technical Report. arXiv.
- Isaac Ong et al. (2024). RouteLLM: Learning to Route LLMs with Preference Data. arXiv.
- Google (2025). Machine Learning Crash Course: Static versus dynamic inference. Google for Developers. Accessed October 25, 2026.
- Pandu Nayak (2021). How MUM improved Google Searches for vaccine information. Google blog. Accessed October 25, 2026.
Sources
- Lingjiao Chen et al. (2023). FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance. arXiv.
- Qwen Team et al. (2024). Qwen2.5 Technical Report. arXiv.
- Isaac Ong et al. (2024). RouteLLM: Learning to Route LLMs with Preference Data. arXiv.
- Google (2025). Machine Learning Crash Course: Static versus dynamic inference. Google for Developers. Accessed October 25, 2026.
- Pandu Nayak (2021). How MUM improved Google Searches for vaccine information. Google blog. Accessed October 25, 2026.
Sources
- Lingjiao Chen et al. (2023). FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance. arXiv.
- Qwen Team et al. (2024). Qwen2.5 Technical Report. arXiv.
- Isaac Ong et al. (2024). RouteLLM: Learning to Route LLMs with Preference Data. arXiv.
- Google (2025). Machine Learning Crash Course: Static versus dynamic inference. Google for Developers. Accessed October 25, 2026.
- Pandu Nayak (2021). How MUM improved Google Searches for vaccine information. Google blog. Accessed October 25, 2026.