Benchmark Selection
A public leaderboard ranks models on a small subset of benchmarks, so its rank does not comprehensively evaluate a model or guarantee performance on your application.
Why a Top Rank Feels Like an Answer
Suppose you are building an application and you want a foundation model that does it well. A natural first step is to open a public leaderboard, find the model at the top, and start building. The shortcut is tempting because a leaderboard presents a single ranking, and a single ranking looks authoritative. It rests on a belief that deserves a careful look: that a leaderboard rank summarizes how well a model will perform on your task.
This article examines why that belief breaks down. Along the way it covers how leaderboards choose their benchmarks, how to read the relationships between benchmarks, how scores get combined into one number, and how to build a benchmark set that reflects your own needs. Before reading on, make a prediction about the situation below.
What do you think happens?
A model sits first on a public leaderboard. Does that tell you it will be the best choice for your product?
Reveal answer
No, the rank reflects only the benchmarks on that leaderboard
A public leaderboard ranks models on a small subset of benchmarks. Its rank does not comprehensively evaluate a model or guarantee performance on your application. Even a larger set would not settle the question, because your application may depend on capabilities the leaderboard never measures.
What a Leaderboard Can Afford to Measure
Public leaderboards rank models by their aggregated performance on a subset of benchmarks. They are genuinely useful, but they are far from comprehensive, and the first reason is compute. Evaluating a model on a benchmark requires compute, so most leaderboards can include only a small number of benchmarks. That constraint forces a choice, and a leaderboard may leave out an important benchmark simply because it is expensive to run.
Two examples show this constraint at work. HELM Lite left out an information retrieval benchmark called MS MARCO because it is expensive to run. Hugging Face chose not to include HumanEval, a coding benchmark, because it has large compute requirements, since it needs a great many generated completions. In both cases the omission is a practical decision, not a judgment that the skill does not matter.
Leaderboard size has also grown only slowly. When Hugging Face first launched its Open LLM Leaderboard in 2023, it consisted of four benchmarks. By the end of that year it had been extended to six. Even the larger set is small compared with the range of things foundation models are asked to do. A small set of benchmarks is not nearly enough to represent the broad capabilities and the different failure modes of these models.
Leaderboard designers generally try to balance coverage against the number of benchmarks. They aim for a small set that spans a wide range of capabilities, such as reasoning, factual consistency, and domain-specific skills like math and science. At a high level this approach makes sense. The difficulty is that coverage is rarely defined precisely, and the public descriptions do not explain why a leaderboard stops at six benchmarks or at ten.
Why Two Leaderboards Disagree
Different leaderboards do not share the same benchmarks. Stanford's HELM Leaderboard used ten benchmarks around the same time that Hugging Face's leaderboard used six. Only two benchmarks appeared on both: MMLU and GSM-8K. That overlap is small, and it makes the rankings hard to compare and interpret. A model can rank highly on one leaderboard and lower on the other without either ranking being wrong, because each one measures a different set of tasks.
Read the diagram as two columns that share only a small middle. Each leaderboard ranks models using its own column of benchmarks. When a model's strengths sit in the benchmarks that only one leaderboard uses, its position on that leaderboard can look very different from its position on the other. The difference comes from which tests were chosen, not from any single model result.
Reading a Benchmark Correlation Table
An aspect of benchmark selection that is often overlooked is benchmark correlation. Benchmark correlation describes how similar the performance of two benchmarks is across models. If two benchmarks tend to rise and fall together, they measure similar things. This matters for selection for a simple reason: if two benchmarks are perfectly correlated, including both adds nothing, so you do not want both of them. Strongly correlated benchmarks can also exaggerate biases, because the same tendency is counted twice.
The correlation values discussed here are Pearson correlations among the six benchmarks on the Hugging Face leaderboard, computed in January 2024. A value near 1.0 means two benchmarks are strongly related. Each benchmark has a correlation of exactly 1.0 with itself, which is why the diagonal of such a table is always 1.0. The values off the diagonal are the ones to read.
| Benchmark pair | Approximate correlation | What it suggests |
|---|---|---|
| ARC-C with MMLU or WinoGrande | 0.87 to 0.90 | Strongly related; all three test reasoning |
| TruthfulQA with the other benchmarks | 0.45 to 0.55 | Only moderately related; carries different information |
Reading the Pearson correlations among Hugging Face benchmarks (January 2024)
The reasoning cluster is consistent with the fact that all three benchmarks test reasoning capabilities. Including ARC-C, MMLU, and WinoGrande together largely repeats one signal. TruthfulQA sits apart, with correlations around 0.45 to 0.55. The source's reading of this pattern is that improving a model's reasoning and math capabilities does not always improve its truthfulness. Benchmarks that look different on the surface can therefore carry very different information, and benchmarks that look similar may be redundant.
Averaging Treats Every Benchmark the Same
Once benchmarks are chosen, their results must be combined into a ranking. This combining step is called aggregation. Hugging Face averaged a model's scores on all its benchmarks to produce the final score used for ranking. Follow one model through that process. Each benchmark result enters the average at equal strength, and the average becomes the single number that places the model on the leaderboard.
Averaging has a hidden assumption. It treats all benchmark scores equally, so a given percentage counts the same no matter which benchmark produced it. An 80% score on TruthfulQA is treated the same as an 80% score on GSM-8K, even though an 80% on TruthfulQA may be much harder to achieve. Averaging also gives every benchmark the same weight, even when some tasks matter much more to a particular purpose. If truthfulness matters far more than grade school math for your application, an equal-weight average does not reflect that.
The HELM authors chose a different approach. Rather than averaging, they used mean win rate, which they defined as the fraction of times a model obtains a better score than another model, averaged across scenarios. This changes the question from how high a model scored to how often it beat its competitors. Both methods compress many results into one number, and each one discards different information.
Matching Benchmarks to Your Application
The correct approach begins by treating your selection as building a private leaderboard. Instead of ranking models by a generic criterion, you rank them by criteria you choose. The first step is to gather a list of benchmarks that evaluate the capabilities important to your application. The benchmark list is the foundation of the leaderboard, so it should follow the work your application does rather than the work a public leaderboard happened to include.
- 1List the capabilities your application actually needs, such as factual accuracy, reasoning, math, or domain knowledge.
- 2For each capability, find benchmarks that measure it and ask what each one actually tests.
- 3Check that each benchmark is reliable, since anyone can publish one and many may not measure what their names suggest.
- 4Remove benchmarks that duplicate a capability already covered by a strongly correlated benchmark.
- 5Identify any needed capability that no benchmark covers, and plan your own evaluation for it.
The reliability check deserves particular attention. A benchmark with an impressive name is not automatically a good test for your needs. Ask what the benchmark actually measures and whether that matches the behavior you care about. Matching is the step that turns a list of popular tests into a set of benchmarks that speak to your product.
Evaluation Challenges: Drift, Gaps, Cost, and Units
Evaluation is harder than it looks, and the difficulty shows up in a recurring observation: each time OpenAI updates its models, users complain that they seem to be getting worse. A study by Stanford and UC Berkeley (Chen et al., 2023) found that for many benchmarks, the performance of both GPT-3.5 and GPT-4 changed significantly between March 2023 and June 2023. This is score drift: the same model on the same benchmark can produce different numbers at different times.
The source offers a careful reading of why this perception exists. One potential explanation is that evaluation is hard, and nobody, not even the model provider, knows for certain whether a model is improving or declining. The source adds that while evaluation is clearly difficult, it doubts that OpenAI would work completely blind. Whatever the cause, the practical lesson holds: a score you measured at one moment may not describe the model you use later.
Missing scores are a second challenge. Not all models have publicly available scores on all benchmarks. If the model you care about has no published score on your benchmark, you will need to run the evaluation yourself. An evaluation harness can help with that work, meaning a tool that organizes running a model against a benchmark and collecting its results.
Evaluation cost is a third challenge. The source gives one concrete figure: Stanford spent approximately 80,000 to 100,000 dollars to evaluate 30 models on its full HELM suite. The more models you want to compare and the more benchmarks you want to use, the more expensive the process becomes. Cost is therefore a practical constraint that shapes how many models and benchmarks you can afford to test in full.
Mixed scoring units are the fourth challenge. One benchmark might report accuracy, another F1, and another BLEU score. These numbers do not share a common unit or scale, so you cannot simply add them together and expect the result to mean something. Scores must be handled before they can be combined, which is the job of the weighting step described next.
Weighting Scores into One Ranking
After you have chosen a set of benchmarks and collected scores for the models you care about, you must combine those scores into a ranking. The source's guidance is to decide how important each benchmark is to your application and weigh the scores accordingly. Weighting makes your priorities explicit: a benchmark central to your product counts for more than one that is only loosely related. The diagram below shows the flow from individual benchmark scores to a weighted ranking.
The following example is an invented illustration of the weighting idea, not a figure from the source. Both scores are already expressed on the same zero-to-one scale. That assumption matters, because real benchmark scores often are not on a shared scale and must be converted before they can be compared. The weighted score for a model is the sum of each benchmark score multiplied by its weight, where the weights add up to 1.
Two models, two weightings
Model A has accuracy 0.90 and F1 0.60. Model B has accuracy 0.70 and F1 0.90. Which model ranks first if accuracy matters more to your application, and which ranks first if F1 matters more?
- 1Weight accuracy heavily
Use $w_{acc} = 0.7$ and $w_{F1} = 0.3$. Model A gives $0.7 \times 0.90 + 0.3 \times 0.60 = 0.63 + 0.18 = 0.81$.
- 2Score Model B with the same weights
Model B gives $0.7 \times 0.70 + 0.3 \times 0.90 = 0.49 + 0.27 = 0.76$. Model A ranks first.
- 3Weight F1 heavily
Use $w_{acc} = 0.4$ and $w_{F1} = 0.6$. Model A gives $0.4 \times 0.90 + 0.6 \times 0.60 = 0.36 + 0.36 = 0.72$.
- 4Score Model B with the new weights
Model B gives $0.4 \times 0.70 + 0.6 \times 0.90 = 0.28 + 0.54 = 0.82$. Model B now ranks first.
The same two models swap positions when the weights change. The ranking reflects the priorities you encode, so the weights must come from your application, not from a default.
Common Mistakes in Benchmark Selection
Common mistake Treating the top public rank as the answer for your product
What it looks likeChoosing the first-place model on a general leaderboard without testing it on your own tasks.
Why it failsA general ranking averages across many kinds of tasks, while your application may depend heavily on one or two of them.
Do this insteadBuild a private leaderboard from benchmarks that match your application's capabilities, then test the shortlist yourself.
Common mistake Including several benchmarks that measure the same capability
What it looks likeKeeping ARC-C, MMLU, and WinoGrande together as though they were three independent judgments.
Why it failsStrongly correlated benchmarks move together, so including all of them counts one tendency several times and can exaggerate biases.
Do this insteadRead the correlation table and keep one benchmark per cluster unless each one covers a distinct need.
Common mistake Averaging scores with equal weight regardless of importance
What it looks likeGiving TruthfulQA the same weight as GSM-8K when truthfulness matters far more to the product.
Why it failsAn equal-weight average assumes every benchmark matters equally and that equal percentages are equally hard to achieve.
Do this insteadAssign weights based on how central each capability is to your application, and record the reason for each weight.
Common mistake Adding scores that use different units
What it looks likeSumming an accuracy percentage, an F1 score, and a BLEU score directly.
Why it failsThe numbers do not share a common unit or scale, so their sum does not mean anything.
Do this insteadConvert the scores to a shared scale before combining them, then apply weights.
Common mistake Trusting a single old score as a description of the current model
Practice: Choosing Benchmarks for a Support Assistant
You are choosing a foundation model for a customer support assistant. Answers must be factually correct, must avoid misleading statements, and must include some arithmetic for billing questions. A public leaderboard shows Model X first, and it uses benchmarks for reasoning, math, and truthfulness. Describe the steps you would take to decide whether Model X should be your choice. Name which benchmarks you would keep, which you would drop as redundant, and what you would do about a capability no benchmark covers.
Hints
- Start by listing the capabilities the support assistant needs, then match benchmarks to each one.
- Use the correlation idea to decide whether two reasoning benchmarks both belong in your set.
- Think about which capability should carry the most weight, and what happens to the ranking if you change the weights.
Key Takeaways
- A public leaderboard ranks models on a small subset of benchmarks, so its rank is not a complete evaluation and does not guarantee performance on your application.
- Compute limits, and differences in leaderboard design, mean that different leaderboards often use different benchmarks and rank models differently.
- Strongly correlated benchmarks measure similar things, so including all of them repeats one signal, while averaging assumes every benchmark deserves equal weight.
- Choose benchmarks by matching them to your application's capabilities, then combine converted scores using weights that reflect your priorities.
- Expect score drift, missing scores, evaluation cost, and mixed scoring units, and plan your own evaluations to cover them.