| name | quco-rag |
| title | QuCo-RAG: Quantifying Uncertainty for Dynamic RAG |
| version | 0.0.2 |
| engine | skillxiv-v0.0.2-claude-opus-4.6 |
| license | MIT |
| url | https://arxiv.org/abs/2512.19134 |
| keywords | ["rag","retrieval","uncertainty","hallucination","calibration"] |
| description | Replace unreliable model-internal confidence signals with objective corpus statistics to decide when RAG retrieval is necessary. Pre-evaluates entity rarity in training data and verifies entity co-occurrence at runtime, triggering retrieval only when hallucination risk is high—improving reliability without per-model tuning. |
Overview
QuCo-RAG addresses a critical flaw in dynamic RAG systems: relying on LLM confidence scores for retrieval decisions when models are notoriously poorly calibrated. This framework shifts to objective, corpus-based evidence that's reliably indicative of hallucination risk.
Core Technique
The key innovation is grounding retrieval decisions in pre-training corpus statistics rather than model outputs.
Pre-Generation Entity Assessment:
Before generation, identify knowledge gaps by checking entity rarity in training data.
import infini_gram
class CorpusBasedUncertainty:
def __init__(self, corpus_client):
self.corpus = corpus_client
def assess_pre_generation(self, input_question):
"""
Identify entities in question appearing rarely in training corpus.
High rarity → high hallucination risk → retrieve.
"""
entities = extract_entities(input_question)
high_risk_entities = []
for entity in entities:
frequency = self.corpus.query_frequency(entity)
if frequency < RARITY_THRESHOLD:
high_risk_entities.append(entity)
return True
return False
Runtime Verification via Co-occurrence:
After generation, verify factual claims by checking entity co-occurrence in corpus.
def ():
claims = extract_factual_claims(generated_text)
hallucination_risk =
claim claims:
subject, predicate, obj = parse_claim(claim)
cooccurrence = corpus_client.query_cooccurrence(
entities=[subject, obj],
context=predicate
)
cooccurrence == :
hallucination_risk =
hallucination_risk