Local compute, evidence documents, verification checkpoints, and a cloud frontier connected by grounded RAG traces.
Grounded RAG drafting eval
local 31B on the clean frontier

Gemma 4 31B AWQ did not merely look good for a local model. On this corpus and prompt set, it stayed near GPT-5.1 on verified substance while avoiding the highest-risk failure: real citations attached to the wrong project.

GPT-5.1 was not the original comparison target. It became the practical OpenAI baseline after GPT-5.5-Pro's uncapped trace ran about $15 and 577 seconds.

6 prompts N=10 reliability 8-model panel Sonnet 4.6 + GLM 5.1 rep=0 substance grading
90.8%Gemma 4 31B clean score; 59/65 strict-graded claims
93.1%GPT-5.1 clean score; 54/58 strict-graded claims
0Gemma fabrications or ambiguous project binds
~172xGPT-5.5-Pro cost gap vs GPT-5.1 in the capped N=3 rerun

TL;DR

I have been building a corpus-grounded drafting and analysis system for government-contracting documents. The workload is deliberately unforgiving: proposal sections, past-performance narratives, contract values, agencies, lifecycle state, SQL aggregates, and inline citations that a reviewer can click.

That makes it a good testbed for grounded generation. A fluent model can sound right while being useless if it attaches a real dollar value to the wrong project, cites an overview page for a claim that actually lives in a different document, or turns an in-flight proposal into completed past performance.

The surprise was not that a local model could write fluent prose. The surprise was that Gemma 4 31B stayed disciplined under citation and substance checks.

The setup

The main run was a 6-prompt x N=10 bench across cloud and local models. The prompts spanned the product surface: short and long past-performance drafting, SQL-only rollups, a single-project SOW prompt, an honest-abstention prompt, and a cross-tool portfolio overview.

The panel included GPT-5.1, Sonnet 4.6, Gemini 2.5 Pro, GLM 5.1, and several local models on a dual-3090 Xeon rig: Gemma 4 31B AWQ, Qwen 3.6 27B AutoRound, Granite 4.1 30B FP8, and Gemma 4 26B MoE.

Reliability and wall time were measured across the N=10 runs. Substance was graded on rep=0 for each model x prompt cell using a six-verdict rubric:

Scope note: This is not a claim that Gemma 4 31B is generally better than frontier cloud models. It is a claim about one corpus, one product surface, and one RAG agent loop. The caveats matter.

The clean frontier

The headline result was simple: GPT-5.1 and Gemma 4 31B were the two cleanest models in the panel.

Substance vs wall time

Cloud Local Y axis: clean score, meaning the percent of checked claims graded corpus-grounded and citation-correct. X axis: aggregate median wall time, log scale.
GPT-5.1 and Gemma 4 31B are the clean frontier. Gemini 2.5 Pro and the Gemma MoE sibling are fast, but both landed around a 73% clean score for different reasons. Qwen was solid but slow. Granite's parser and concurrency issues make the original result a research datapoint, not a deploy recommendation.
Model Trials Claims checked Clean correct Other flags Ambiguous Fabricated Clean score
GPT-5.160/60585440093.1%
Gemma 4 31B AWQ local60/60655960090.8%
Sonnet 4.630/30685873085.3%
Qwen 3.6 27B local59/606046122076.7%
GLM 5.160/607052134174.3%
Gemma 4 26B MoE local60/60493676073.5%
Gemini 2.5 Pro60/60453384073.3%
Granite 4.1 30B local47/60362574069.4%
Clean score = clean-correct claims divided by checked claims. "Other flags" includes weak citations, value-cadence ambiguity, and partially grounded editorial qualifiers. It does not mean the claim was fabricated or bound to the wrong project.

Clean correct means the strictest verdict: the claim is in the corpus, the citation supports it, and the project context matches. The gap between "claims checked" and "clean correct" does not automatically mean "wrong." For GPT-5.1, for example, the four non-clean rows were minor flags: one value-type/cadence issue and three partially grounded editorial overlays, not fabrications or wrong-project bindings.

Gemma's strongest property was not output beauty. It was discipline. Across 65 checked claims, it had zero fabrications, zero wrong-project bindings, exact SQL aggregates, and a clean honest-abstention result on an in-flight proposal prompt.

Its weaknesses were real but much less severe: four citation-weak rows where it leaned on overview chunks, one award-vs-final-cost cadence ambiguity, and one "low-risk partner" editorial qualifier. Those are reviewer-labor issues. They are not the same as inventing a contract value or binding a school project to a clinic narrative.

The GPT-5.5-Pro cost trap

The result that first forced me to slow down was GPT-5.5-Pro. In an initial six-way bake-off, one GPT-5.5-Pro run cost about $15 and took 577 seconds. That looked suspicious, so I dug into the trace.

The cost was real. It came from three compounding factors:

  1. GPT-5.5-Pro chose a more exhaustive tool-use strategy: 16 retrieves across 4 turns.
  2. Every agent turn resent the accumulated conversation and prior tool results, producing 418k cumulative input tokens in the N=1 trace.
  3. The model appeared to spend heavily on hidden reasoning: 15.5k billed output tokens versus far fewer visible prose tokens.

The later N=3 rerun gave the cleaner comparison. That rerun used a per-call max_tokens=3000 cap, so GPT-5.5-Pro dropped to a $9.78 median run cost instead of the uncapped initial ~$15 trace. Even under that capped protocol, GPT-5.5-Pro stayed high-quality but GPT-5.1 delivered substantively similar quality at a radically lower cost.

OpenAI model economics in this agent loop

Capped N=3 rerun median. GPT-5.5-Pro was accurate enough to respect, but economically dominated. Its thorough tool-use behavior multiplied context rebilling inside the agent loop, while GPT-5.1 avoided the hidden-reasoning bill on this prompt family.

The lesson is not "never use a reasoning model." The lesson is that reasoning-model economics are workload-dependent. In a multi-turn RAG agent, more thinking and more retrieval can create a compounding bill without creating a proportional quality gain.

Cost caveat: GPT-5.1 prompt-cache hit rates were very high in the rerun. The exact ~172x ratio should not be treated as a universal constant. The qualitative result is the point: GPT-5.5-Pro had no practical edge per dollar on this workload.

The interesting failures were not just hallucinations

In high-stakes RAG, hallucination is too blunt a word. The panel surfaced several distinct failure modes with different operational meanings.

Failure modes by model

Failure mode
GPT-5.1
Gemma 31B
Sonnet
Gemini 2.5
GLM
Qwen
Granite
Fabricated value
0
0
0
0
1
0
0
Wrong-project binding
0
0
3
4
4
2
4
SQL scope or aggregate issue
clean
clean
52x agency-scope leak
clean
non-reconciling
clean
malformed
Citation-weak pattern
0
4
2
2
2
9
2
The most dangerous cases were not necessarily fabricated. A wrong-project citation can be worse in practice because a reviewer clicks a real source and sees a real document, just not the document that supports the sentence they are reading.

One example: a model can cite a real chunk that mentions a real 153-container logistics fact, but place that fact inside the wrong project's paragraph. A simple corpus regex says "grounded." A procurement reviewer sees a cross-project attribution slip.

Another example: SQL scope. A model can compute a real total from real rows and still be wrong because it failed to filter to document-scope awarded values. That is not a prose hallucination. It is a query semantics failure.

The evaluator can be wrong too

The most uncomfortable part of this work was that the judging process failed before the models did.

In earlier checks, Opus repeatedly accused Gemma 4 31B of fabricating values that were actually present in the corpus. The failure was mine: narrow substring searches, fixed-width chunk previews, missing page-level OCR stores, and stopping at the cited chunks instead of searching the full corpus before using the word "fabricated."

Do not collapse citation weakness into fabrication

Grounded RAG judging workflow separating corpus truth, citation support, project binding, and verdicts: fabricated, citation weak, ambiguous, correct.
The corrected rubric separates corpus truth, citation support, and project binding. A missing value is fabrication. A real value with a weak cite is a citation problem. A real value attached to the wrong project is an attribution problem.

This changed the methodology. I now treat "fabricated" as a high bar. Before writing that word, the verifier must search across the relevant stores: chunk content, contextualized content, multimodal page text, and tool-call traces, with value variants and OCR-tolerant patterns.

The corrected distinction matters:

That distinction saved the Gemma result from being misread. Gemma's recurring issue was mostly citation pattern weakness, not fabrication. That is still important, but it is a different product problem.

A note on the fast MoE sibling

The Gemma 4 26B MoE result deserves its own note because it is tempting to overread it. It ran the full 6-prompt x N=10 sweep in about 4 minutes, 5-14x faster than the other local models on the same rig. It also had 0 fabrications.

But the substance profile was weaker. On a tight single-project prompt, it was excellent: 12/12 citation-correct. On broad multi-project drafting, it under-retrieved and bound too much narrative to too few chunks. On SQL aggregation, it deterministically failed the rollup prompt.

My conclusion: route the MoE to fast, tight-scope single-project drafting and abstention checks. Do not use it as a drop-in replacement for dense Gemma 31B on broad past-performance or aggregate-heavy prompts.

What I take from this

1
Citations are not enough. Verify claim, source, project, value cadence, and lifecycle.
2
Local models can be credible in narrow enterprise RAG if the corpus and verifier are strong.
3
Reasoning models can be economically dominated in tool-heavy loops.
4
LLM judges need evidence discipline, not just a grading prompt.

If I had to deploy today for this specific workload, I would use GPT-5.1 as the cloud anchor and Gemma 4 31B AWQ as the local anchor. Qwen 3.6 27B is a credible second local option, especially where exact SQL behavior matters, but it is slower and more citation-weak. I would not use GPT-5.5-Pro by default for this agent loop. I would reserve it for cases where its extra reasoning visibly buys down risk.

Caveats

The caveats are not footnotes. They are part of the result.

The result I am comfortable sharing is narrower and stronger than a leaderboard: in this citation-heavy procurement RAG workload, a self-hosted Gemma 4 31B model was much more trustworthy than I expected, GPT-5.1 was the clean cloud default, and the most useful eval signal came from analyzing failure modes rather than ranking models by one number.

Source notes

This post summarizes internal bench journals and reports from May 2026: the initial six-way drafting bake-off, the capped N=3 publication rerun with cost forensics, the Gemma substance-check methodology failure postmortem, and the N=10 multi-prompt rebench. The public-facing claim is intentionally narrower than the internal notes: one corpus, one tool-using RAG system, one prompt family.