Compare (Model, Program, Strategy) Triples, Not Models Alone
"How do models compare on this benchmark" is underspecified for LM pipelines — report accuracy against a fixed program and compiling/ optimization strategy so the comparison is reproducible.
A question like "how do different LMs compare on GSM8K" hides an unstated variable: which prompt, how many few-shot demonstrations, whether chain-of-thought was used, how any of that was chosen. Two people running "the same" comparison can get different rankings purely from undisclosed prompt-engineering differences — the model wasn't the only thing that varied.
Once prompts and demonstration selection are treated as an
optimizable, compiled artifact rather than
hand-tuned once and forgotten, the fix becomes available: report accuracy
against the full (model, program, compiling strategy) triple — e.g. "GSM8K
accuracy with program ChainOfThought compiled with
BootstrapFewShotWithRandomSearch" — instead of "GSM8K accuracy with GPT-4."
This is a reproducible unit precisely because the program and strategy are
themselves versioned artifacts, the same way a model checkpoint is, so a
different team can rerun the identical configuration rather than
approximating an undocumented hand-tuned prompt. It also isolates where a
gain came from: a jump in accuracy might reflect a better base model, a
better-decomposed program, or a better compiling strategy, and reporting all
three separately (rather than crediting the model alone) is what makes it
possible to tell which one actually mattered — the same discipline
component-level harness ablation
applies to a coding-agent harness, applied here to an LM pipeline's prompts
and few-shot strategy instead of its tools and middleware.
Sources
- DSPy (Khattab et al.), §5