llmcloud.ai
← Back to blog
Accuracy· 11 min read

Model ensembles: 12–18% accuracy gains by blending multiple LLMs

We ran a 40K-prompt eval across arithmetic, code, and long-form QA. Ensembling three mid-tier models beat GPT-4-class single-model calls at 30% lower cost.

By llmcloud research

Single-model calls are cheap, fast, and lossy. If you have any budget for extra tokens, ensembling two or three mid-tier models will almost always beat a single frontier call on hard tasks. We benchmarked three patterns on our public eval set.

Pattern 1 — Best-of-N with a judge

Fan out to N models in parallel, then ask a small judge model to pick the best answer. Works well when the answers are short and comparable (arithmetic, single-step reasoning, one-shot code). Cost scales linearly with N; latency stays at max(N).

SetupMATH-500HumanEval+GPQA-DiamondRel. cost
Single GPT-4 class84.2%88.6%58.1%1.00×
Best-of-3 mid-tier + judge89.1%92.4%62.7%0.68×
Best-of-5 mid-tier + judge91.0%93.9%64.9%1.10×

Pattern 2 — Majority vote

Great for classification, multiple choice, and any task with a small discrete answer space. No judge needed — you just tally. Three cheap models voting will typically match a frontier model at 20–30% of the cost.

const votes = await Promise.all([
  llm("deepseek-v3.1", prompt),
  llm("qwen3-235b", prompt),
  llm("llama-4-maverick", prompt),
]);
const winner = mode(votes.map(parseChoice));

Pattern 3 — Debate / consensus

Two models produce answers, a third reviews the disagreement and issues the verdict. Slower and pricier, but the accuracy delta on GPQA-Diamond was the biggest we measured (+6.8 points over a single frontier call).

When ensembles don't help

Creative tasks, style-driven writing, and role-play don't ensemble well — the judge or vote step averages the voice away. Stick to single-model there and route to the model with the highest per-topic Elo.

Doing this on llmcloud

Pass an ensemble spec on any request and we'll fan out, judge, and stream the winner back. Cost + trace headers still work.

{
  "ensemble": {
    "strategy": "best_of_n",
    "n": 3,
    "candidates": ["auto:cost", "auto:balanced", "auto:quality"],
    "judge": "openai/gpt-5.5-mini"
  },
  "messages": [ ... ]
}