Chapter 33 of 60

Retriever Failure or Generator Failure?

Concepts

CHAPTER 33 โ€” RETRIEVER FAILURE OR GENERATOR FAILURE?

PART VI โ€” Debugging Prompts, Retrieval, and Hallucinations

PURPOSE

Attribute one wrong RAG answer to exactly one handoff โ€” retrieval, assembly, or generation โ€” by freezing all three artifacts and diffing the two boundaries in order, then demanding discriminant (boundary-specific) recovery.

CENTRAL QUESTION

Which handoff boundary diverged first โ€” retrieval, assembly, or generation โ€” for this incident?

UNIQUE CLAIM

Only this chapter runs the A/B/C triple (identical “processed RB-8814” sentence, three different first divergences: rank-47 retrieval miss / 8,192-token assembly cut vs 9,104 offset / sent-intact generation contradiction) with the incident-pairing rule: sentences don’t pair, triples pair, and pairings expire on config change.

DEBUGGING OBJECT

One incident’s frozen triple: retrieval log (chunk IDs + hashes + ranks) vs sent context (exact post-truncation bytes) vs raw output โ€” diffed by hash presence, not topical resemblance.

CONCEPTS INTRODUCED (only genuinely new here)

  • Three-artifact attribution (H1 absent-from-log / H2 in-log-but-cut-from-sent / H3 in-sent-but-contradicted) with stop-at-first-divergence ordering
  • Discriminant-repair criterion (a correct attribution predicts recovery only on its incident; a fix that “fixes everything” evidences confounding)
  • Incident-pairing rule + pairing ledger (every carbon-copy sentence gets a fresh triple; pair only on matching PRESENT/ABSENT patterns)
  • Context-memory (knowledge) conflict as H3’s name (partially-matching distractor triggers confirmation bias, not random hallucination)
  • Negative rejection / abstention as the missing half of the H1 repair (miss โ†’ “no record found”, not invention)
  • RAGAS axes mapped to the triple (context relevance โ‰ˆ H1, faithfulness โ‰ˆ H3); the chapter’s byte-level per-incident causality vs RAGAS’s fleet-wide signal

CONCEPTS DEVELOPED / REUSED (with source chapter)

  • Ch3 miniature triple run at full depth; Ch3 self-report quarantine enforced (model’s “I retrieved the ledger” never a handoff record)
  • Ch32 stage machinery as the H1 repair path; Ch20 length forensics as the H2 specialist once assembly is convicted
  • Ch32 distractor-cost finding reused to explain H3’s confirmation-bias mechanism

PREREQUISITES

Pinned input bytes + corpus snapshot + prompt hashes (Ch30โ€“31) + top-k + assembly budget + model ID/params; supporting source line byte-known; all three artifacts freezable before any model self-explanation is read.

LOCAL INVARIANTS

  • All three artifacts frozen with hashes before explanations; presence = byte-presence (hash match), never topical resemblance.
  • H1/H2/H3 numeric predictions pre-written (ranks, cutoffs, offsets); boundaries diffed in order; first failed prediction convicts its stage and suspends the rest for this incident.
  • Single-boundary repair, pinned input re-run โ‰ฅ3 times, discriminant recovery predicted; H1 repair includes the abstention path; H3 repair accounts for partially-matching distractors.
  • Fresh triple per incident; pairing by triple-pattern match; pairings voided on any top-k/budget/prompt/snapshot change.

FAILURE MODES (this chapter’s specific ones)

  • Label-and-constrain (calling everything hallucination, tightening generation for a retrieval/assembly break).
  • Log-free attribution (verdicts with unlogged gaps filled by opinion/self-report).
  • Topic-matching (“ticket chunk is about refunds, so retrieval worked”); score conviction (relevance/faithfulness numbers as verdicts).
  • Pan-repair (top-k + budget + prompt together); cross-incident generalization (“incident A was retrieval, so this identical sentence is retrieval”); merged incidents; boundary-blind “RAG accuracy” averaging.

DIAGNOSTIC METHOD (3-6 steps)

  1. Freeze the triple (log, sent context, output), all hashed, before explanations.
  2. Predict numerically (rank > k values, cut-vs-offset values, contradiction quotes) per hypothesis.
  3. Diff in order (retrieval โ†’ assembly โ†’ generation) by hash; stop at the first divergence.
  4. Repair one boundary (cutoff/query-shaping + abstention / truncation accounting / context grounding).
  5. Demand discriminant recovery (fixes this incident, need not fix others); file the pairing-ledger entry.

RESEARCH-DERIVED IDEAS (papers/findings with bounds)

  • Es et al. 2024 (RAGAS, EACL demo): context relevance + faithfulness (+ answer relevance) as separate scored axes with atomic-statement decomposition โ€” bounds: LLM-judged metrics carry their own error; the chapter’s contribution is byte-level per-incident causality, not the fleet signal.
  • Xie et al. 2024 (Adaptive Chameleon or Stubborn Sloth, ICLR): models sway to coherent external evidence BUT show confirmation bias when context also contains parametric-matching material โ€” bounds: benchmark-scale; this is H3a (contradicts a correct context under a distractor).
  • Wu, Wu & Zou 2024 (ClashEval, arXiv:2404.10198): dominant mode โ€” LLMs override their own correct prior with incorrect retrieved content >60% of the time; modulators: less realistic false content โ†’ less adopted; lower model confidence in its initial answer โ†’ more adopted โ€” bounds: 6 domains / 6 models, synthetic conflicts; this is H3b. Corroborated by Huang et al. 2025 (To Trust or Not to Trust?, ICLR): over-reliance on external context regardless of accuracy; confidence-calibrated “situated faithfulness” as the fix.
  • H3 splits H3a (contradicts correct context) / H3b (follows incorrect context); after an H3 verdict, confirm the byte-present supporting line is factually correct โ€” an H3b is a retrieval/corpus failure, not a generation failure.
  • Chen, Lin, Han & Sun 2024 (RAG benchmarking, AAAI): negative rejection (abstain when context lacks the answer), noise/counterfactual robustness โ€” bounds: benchmark-scale; incident A is a negative-rejection failure, hence the two-part H1 repair.

EXPERIMENT / LAB (actual lab, H-structure)

Lab 33: three-artifact split test with discriminant predictions (PROPOSED, reader-executed). H1: ledger hash absent from log (rank ___ > k); H2: present at rank ___ but absent from sent (cut ___ vs offset ___); H3: present at offset ___, contradicted in output (both quoted). Rows: boundary ร— predicted pattern ร— FORECAST ร— OBSERVATION (ร—3 where stochastic) + single-boundary repair with discriminant prediction. A “hallucination fix” with no triple is not completion.

COMPANION TOOL (name + accepts/can-establish/cannot-establish)

Retriever-vs-Generator Split Test. Accepts: pinned input, snapshot, byte-known supporting line, three frozen artifacts + hashes, rank/cutoff/offset config. Performs: ordered hash diffs, truncation-vs-offset checks, verbatim contradiction flagging, discriminant-repair prediction gating. Can establish: which boundary diverged first for this incident. Cannot establish: corpus quality, generator reliability, or cross-incident causes; never treats scores, confidence, agreement, single runs, self-reports, or symptoms as attribution evidence.

PREVENTION ARTIFACT

Incident-pairing ledger (INC-114 H1 / INC-115 H2 / INC-116 H3 / INC-117 pairs-115 / INC-118 pairs-114); truncation-accounting and abstention-path repairs filed per boundary; top-kโ†’20 / truncation-fix / context-constrain discriminant recoveries (A/B/C each recovers only its own).

READER OUTCOME (testable phrasing)

Given one wrong RAG answer with a byte-known supporting line, the reader files a frozen triple with per-boundary PRESENT/ABSENT-by-hash plus a single-boundary repair recovering the pinned input โ‰ฅ3/3 (with the discriminant prediction stated) โ€” matching the pre-written H1/H2/H3 numeric patterns.

DEPENDENCIES

Ch3 triple miniature + quarantine rule; Ch30โ€“31 pins; Ch32 stage repair (H1) and Ch20 assembly forensics (H2); Ch34 claim verification as the H3 consumer.

FORWARD BRIDGE

Attribution tells where the contradiction happened, not how to dissect a four-claim paragraph into checkable pieces โ€” so Ch34 operationalizes claim-by-claim verification (atomic split, exact spans, per-claim SUPPORTED/UNSUPPORTED/CONTRADICTED/OUT-OF-CONTEXT).

EVIDENCE / RESEARCH REQUIREMENTS

Reader’s own frozen triple required; A/B/C refund triple (rank 47 / cut 8,192 vs offset 9,104 / sent-offset 1,204 contradicted) constructed, no measured runs. Any unlogged artifact โ†’ UNKNOWN.

ANTI-CLAIMS / LIMITS

One split test covers one incident under one snapshot + config; certifies no stage, transfers to no identical-looking answer, UNKNOWN where any artifact is unlogged. RAGAS scores locate fleets; diffs convict incidents.

Explain this chapter with AI

Copy this prompt into ChatGPT, Claude, Gemini, a local model, or another AI.

Apply this chapter with AI

Copy this prompt into ChatGPT, Claude, Gemini, a local model, or another AI.

Part VI โ€” Debugging Prompts, Retrieval, and Hallucinations

Same wrong refund answer, three different culprits

Chapter 3 previewed this triple in miniature; Chapter 32 staged the pipeline. Now the full attribution runs. The symptom is fixed: “Your refund was processed on September 2; reference RB-8814.” The corpus truth is fixed: ledger line “refund PENDING, no reference issued,” no RB-8814 anywhere. Three incidents in three weeks produced this identical sentence โ€” and each had a different first divergence.

Concrete failure. Incident A: the retrieval log has no ledger chunk. Incident B: the retrieval log has it, the sent context does not. Incident C: the sent context has it, the answer contradicts it. One symptom, three repairs โ€” and every team that “fixed” all three by tuning the prompt fixed none of them twice.

OBSERVATION: output string identical across A/B/C (contains “processed” + “RB-8814”); ledger line byte-absent from output’s support in all three; per-handoff artifacts differ (frozen below). HYPOTHESIS H1 (retrieval failure): ledger chunk absent from the retrieval log. H2 (assembly failure): present in retrieval log, absent from sent context. H3 (generation failure): present in sent context, contradicted in output. INFERENCE: none yet โ€” H1/H2/H3 predict mutually exclusive artifact diffs and are separable only by diffing all three artifacts on the pinned input.

This chapter’s question: which handoff boundary diverged first โ€” retrieval, assembly, or generation โ€” for this incident?

Why “the RAG is hallucinating” fails first

The obvious move โ€” labeling the symptom “hallucination” and constraining generation โ€” fails because the label erases the boundary. Five defects hide behind the single word:

  1. Boundary blindness. “Hallucination” describes the output, not the handoff. It prescribes the same repair (prompt constraints, lower temperature) for a chunk that was never retrieved and a chunk that was retrieved but truncated.
  2. Missing-artifact diagnosis. Without the retrieval log, H1 and H2 are indistinguishable; without the sent context, H2 and H3 are indistinguishable. Opinions fill the unlogged gaps.
  3. Score substitution. A relevance score of 0.91 on the ticket chunk is cited as “retrieval worked.” Scores do not show whether the ledger chunk crossed each boundary; only artifact diffs do.
  4. Self-report contamination. The model says “I retrieved the ledger and it confirms RB-8814” (Chapter 3’s rule applies at full force here). The sentence is behavior to quarantine, never a handoff record.
  5. Single-fix superstition. Raising top-k “fixed” incident B once (the truncated chunk happened to survive that run’s packing). The assembly truncation remains; the next long context re-breaks it.

OPINION: “hallucinating” is a symptom word wearing a diagnosis costume. Take it off. Diff the handoffs.

The retrieval-versus-generation split is not this book’s idea; it is standard RAG-evaluation practice. RAGAS scores a pipeline on context relevance (was the retrieved material on point?) and faithfulness (is each atomic claim in the answer grounded in that material?) as separate axes (Es et al., 2024). Those two axes are H1 and H3. This chapter’s contribution is the byte-level, per-incident version: RAGAS gives you a continuous fleet-wide signal; the three-artifact diff gives you a causal verdict for one incident.

The mental model: three-artifact attribution โ€” retrieval log vs. sent context vs. output, diffed in order, first divergence convicts. The book’s A/B/C triple is not three theories about models; it is three predictions about bytes at boundaries.

The method: freeze three artifacts, diff two boundaries

Pin the input bytes, corpus snapshot, prompt hashes (Chapters 30โ€“31), top-k and assembly budget, model identifier and parameters. Then:

  1. Freeze the retrieval log. Exact chunk IDs + content hashes + ranks returned for the pinned query. H1 predicts: ledger chunk hash d4e2 absent (rank > k or unreturned).
  2. Freeze the sent context. Exact bytes assembled and sent to the model (post-truncation, post-template). H2 predicts: d4e2 present in (1) but byte-absent here, with the truncation record showing where it was cut. Chapter 20 established how evidence is lost at this boundary โ€” the length ledger, the cut simulation, the shorten/reorder/budget probes; there the job is to debug the context-window boundary itself. Here that same failure is one candidate location inside a larger question: which evidence boundary โ€” retrieval, assembly, or generation โ€” is responsible for the observed answer. Run Chapter 20’s forensics once this diff convicts assembly.
  3. Freeze the output. Raw generation bytes. H3 predicts: ledger line byte-present in (2) yet output asserts “processed, RB-8814” โ€” direct contradiction on the pinned context.
  4. Diff in order and stop at the first divergence. Retrieval boundary first, then assembly, then generation. Distinct numeric predictions per hypothesis (counts, ranks, byte lengths) are written before diffing; the first failed prediction convicts its stage and suspends the rest for this incident.
    flowchart TD
    FZ["freeze the triple per incident: retrieval log, sent context, raw output โ€” all hashed"] --> R{"needed chunk (by hash) present in the retrieval log within top-k?"}
    R -->|no| H1["H1 retrieval failure โ€” Ch32 stage repair + an abstention path for the miss"]
    R -->|yes| A{"chunk bytes present in the sent context?"}
    A -->|"no, cut before its offset"| H2["H2 assembly failure โ€” fix truncation accounting (run Ch20 forensics)"]
    A -->|yes| G{"output contradicts the byte-present supporting line?"}
    G -->|yes| H3["H3 generation failure โ€” is the supporting line itself correct?"]
    H3 --> H3a["H3a: context correct, output contradicts it (confirmation-bias distractor)"]
    H3 --> H3b["H3b: output follows an incorrect context โ€” really a retrieval / corpus failure"]
    G -->|no| RE["all boundaries hold โ€” re-examine the 'supporting' line"]
  
TRIPLE ARTIFACT DIFF (input frozen; snapshot idx-2026-08-14; top-k=5; budget 8K tokens):
ledger chunk d4e2 ("refund PENDING, no reference issued"):
 incident A: retrieval log ABSENT (rank 47/50, below k=5) | sent: absent | output: "processed RB-8814" -> H1
 incident B: retrieval log PRESENT (rank 3/50) | sent: ABSENT (cut at 8,192 tokens; d4e2 at offset 9,104) | output: "processed RB-8814" -> H2
 incident C: retrieval log PRESENT (rank 2/50) | sent: PRESENT (offset 1,204, intact) | output: "processed RB-8814" vs sent "PENDING, no reference" -> H3
RULE: presence is byte-presence (hash match), not topical resemblance. Resemblance is not retrieval.

OBSERVATION (constructed illustration, not a measured run): A shows rank 47/50 below cutoff; B shows retrieval rank 3 with assembly cut at 8,192 tokens against chunk offset 9,104; C shows the intact ledger line at sent-offset 1,204 contradicted verbatim in output. UPDATED BELIEF: H1 supported for incident A, H2 for B, H3 for C โ€” each for its instance only; the other two hypotheses rejected per incident, not universally. No cross-incident generality claimed.

No paraphrase similarity, confidence, agreement across re-asks, single green retry, or downstream symptom (“finance saw no complaint”) moves any of these verdicts. Only the byte diffs do.

Example: running the split test on the refund triple

One script, three incidents, pre-written numeric predictions:

# retriever-vs-generator split test: artifact diffs (no model re-asks yet)
for incident in (A, B, C):
    rlog = load_retrieval_log(incident)   # OBSERVATION: chunk IDs + hashes + ranks
    sent = load_sent_context(incident)    # OBSERVATION: exact bytes, hash c55e etc.
    out = load_output(incident)           # OBSERVATION: raw generation bytes
    # H1 predicts: hash d4e2 not in rlog. H2 predicts: d4e2 in rlog, not in sent
    # (with truncation offset < chunk offset). H3 predicts: ledger line in sent,
    # contradicted in out. Record per-boundary PRESENT/ABSENT by hash, not topic.
    log(incident, present(rlog, "d4e2"), present(sent, LEDGER_LINE), contradicts(out, LEDGER_LINE))
# Discriminating intervention per verdict (one boundary each):
# H1 -> raise top-k / reshape query, re-run pinned input x3. H2 -> fix truncation
# accounting, re-run x3. H3 -> constrain generation to context, re-run x3.
# Each predicts recovery ONLY on its incident; cross-incident recovery is exoneration failure.

In the constructed triple the interventions behave discriminantly: top-k=5โ†’20 recovers A across three trials but leaves B’s truncation and C’s contradiction intact; truncation accounting recovers B only; context-constraining recovers C only. That discriminant pattern is the proof the attribution was correct โ€” a repair that “fixes everything” on the first try is evidence of confounding, not mastery.

Research lineage: H3 is a knowledge conflict, and H1 is a rejection failure

When the context says “PENDING” and the answer says “processed,” that is a context-memory conflict. Xie and colleagues studied how models behave when retrieved evidence contradicts their parametric knowledge and found two things at once: models can be swayed by coherent external evidence, but they show a strong confirmation bias โ€” when the context also contains something that agrees with the model’s prior (here, ticket chatter mentioning a completed refund), the model leans on that and discounts the conflicting ledger line (Xie et al., 2024). That is one of two modes. Wu and colleagues’ ClashEval measured the tug-of-war directly and found the dominant failure runs the other way: models override their own correct prior and adopt incorrect retrieved content more than 60% of the time โ€” the more so when the model was unconfident in its own answer to begin with, and the less so when the false content is blatantly unrealistic (Wu et al., 2024; corroborated by Huang et al., 2025). So an H3 verdict splits: H3a, the output contradicts a correct context (Xie’s case โ€” it needs a co-present prior-matching distractor, which is why the Chapter 32 finding about distractor cost matters here); H3b, the output faithfully follows an incorrect context. Before routing an H3 verdict to generation repair, confirm the byte-present supporting line is actually right โ€” an H3b is a retrieval or corpus failure wearing a generation costume.

Incident A is a negative-rejection failure. When nothing relevant was retrieved, the correct behavior is to abstain โ€” “I don’t have a record of that refund.” Benchmarks of RAG behavior measure exactly this negative rejection capacity, and models frequently fail it, generating a confident answer from parametric priors instead (Chen et al., 2024). So the H1 repair is two-part: fix retrieval (Chapter 32), and add an abstention path so the next retrieval miss produces “no record found” rather than an invented reference.

Second artifact: the incident-pairing rule

Identical outputs tempt incident-merging (“same RB-8814 bug again โ€” apply last week’s fix”). The pairing rule forbids merging without a fresh triple, and it pays for itself the first time two identical sentences diverge:

  1. Every incident gets its own triple, even carbon copies. Retrieval log, sent context, output โ€” frozen and hashed per incident. Reuse of a prior incident’s artifacts as this incident’s evidence is contamination, not efficiency.
  2. Compare triples before comparing outputs. Two incidents pair (same repair applies) only when their per-boundary PRESENT/ABSENT patterns match. Same output + different pattern = different incident wearing the same sentence.
  3. Track the pairing ledger. INC-118 (H2, cut 8,192) pairs with INC-121 (H2, cut 8,192) โ†’ shared truncation repair confirmed 3/3 both. When a third identical output arrives with an H1 pattern, the ledger shows exactly why the shared repair must not auto-apply.
  4. Expire pairings on config change. Any change to top-k, budget, prompt hash, or snapshot version voids open pairings; the next incident re-attributes from scratch. Config drift silently re-sorts which boundary breaks first โ€” OBSERVATION from re-runs after budget changes, not assumption.
PAIRING LEDGER (constructed illustration):
INC-114: H1 (rank 47>k5) | INC-115: H2 (cut 8,192 vs off 9,104) | INC-116: H3 (sent intact, contradicted)
INC-117 (same sentence): triple matches INC-115 pattern -> paired, truncation repair, 3/3
INC-118 (same sentence): triple matches INC-114 pattern -> NOT paired with 115/117; cutoff repair
RULE: sentences don't pair. Triples pair.

OBSERVATION (constructed illustration): pairing INC-117 with INC-115 by triple (not sentence) ships the right repair first try; sentence-pairing would have applied the H1 cutoff fix and left truncation intact. UPDATED BELIEF: triple-pairing supported as routing discipline for this pipeline-instance; no claim about incident frequencies. Routing correct is not cause explained.

Lab 33: three-artifact split test with discriminant predictions (proposed)

PROPOSED, not executed: no author-measured results are reported. The evidence this chapter requires is the reader’s own frozen triple.

Setup. Take one wrong RAG answer where the supporting source line is byte-known. Pin the input, snapshot, prompt hashes, top-k, assembly budget, and model parameters. Freeze all three artifacts before reading any model self-explanation. The boundary is the independent variable; input, snapshot, and config are controlled.

Task.

  1. Before diffing, write H1/H2/H3 with distinct numeric predictions: H1: “ledger hash absent from retrieval log (rank ___ > k=___)”; H2: “present in log at rank ___, absent from sent context (cut at ___ tokens vs. offset ___)”; H3: “present in sent context at offset ___, contradicted in output (quote both).”
  2. Diff in order, โ‰ฅ3 trials for any stochastic step (re-query for rank stability). Record OBSERVATION (hashes, ranks, offsets verbatim) and UPDATED BELIEF per hypothesis.
  3. Apply the single-boundary repair and predict discriminant recovery: it must fix this incident and need not fix others.
Boundary Predicted artifact pattern FORECAST OBSERVATION (ร—3 where stochastic) UPDATED BELIEF
retrieval (H1) log ABSENT, rank ___>k ___ ___ ___ ___ H1 live/exonerated
assembly (H2) log PRESENT, sent ABSENT (cut ___) ___ ___ H2 live/exonerated
generation (H3) sent PRESENT, output contradicts ___ ___ ___ ___ H3 live/exonerated

Success criterion. A frozen triple with per-boundary PRESENT/ABSENT by hash plus a single-boundary repair that recovers the pinned input โ‰ฅ3/3. A “hallucination fix” with no triple is explicitly not completion.

Companion tool: Retriever-vs-Generator Split Test

What it accepts: the pinned input, corpus snapshot, the byte-known supporting line, the three frozen artifacts (retrieval log, sent context, raw output) with hashes, and the rank/cutoff/offset configuration. What it performs: it diffs the two boundaries in order by hash (not topic), checks truncation records against chunk offsets, flags output-vs-context contradiction verbatim, and requires the discriminant-repair prediction before any fix ships. What it can establish: which boundary diverged first for the examined incident โ€” retrieval, assembly, or generation. What it cannot establish: corpus quality in general, generator reliability in general, or cross-incident causes. It never treats scores, confidence, agreement, single-run outcomes, model self-reports, or downstream symptoms as attribution evidence. How its output changes your next action: H1 routes to Chapter 32 stage repair (cutoff, query shaping, filters); H2 routes to assembly repair (budget accounting, ordering, truncation guards); H3 routes to generation repair (context grounding, claim constraints โ€” Chapter 34); all-present-and-consistent routes to re-examining the “supporting” line itself.

Paper form, sufficient for this chapter:

Input hash: ___  Supporting line hash: ___ (d4e2)
Retrieval log: PRESENT/ABSENT (rank ___/___ vs k=___)
Sent context: PRESENT/ABSENT (offset ___ vs cut ___)  Output: SUPPORTS/CONTRADICTS (quote ___)
FIRST DIVERGENCE: retrieval / assembly / generation  REPAIR (one boundary): ___
Re-run x3: ___ ___ ___  NEXT: ___

Where a software implementation does not yet exist in the reader’s stack, this record is the tool. Three artifacts or no attribution.

Reusable procedure: attribute every wrong RAG answer

  1. Freeze the triple โ€” retrieval log, sent context, output, all hashed, before explanations.
  2. Predict numerically โ€” ranks, cutoffs, offsets per hypothesis, written first.
  3. Diff in order โ€” retrieval boundary, then assembly, then generation; stop at the first divergence.
  4. Repair one boundary โ€” single-handoff fix, pinned input re-run โ‰ฅ3 times.
  5. Demand discriminant recovery โ€” the fix should track its boundary, not everything.

Failure modes

  • Label-and-constrain. Calling everything hallucination and tightening generation. Repairs B with C’s medicine.
  • Log-free attribution. Verdicts without one or more artifacts. Gaps filled by self-report are contamination (Chapter 3 rule).
  • Topic-matching. “The ticket chunk is about refunds, so retrieval worked.” Support is byte-presence of the needed line, not topical nearness.
  • Score conviction. Citing similarity or faithfulness numbers as the verdict. Numbers locate; diffs convict.
  • Pan-repair. Changing top-k, budget, and prompt together. Three boundaries moved, zero learned.
  • Cross-incident generalization. “Incident A was retrieval, so this identical sentence is retrieval.” Same output, different break โ€” diff every incident.
  • Merged incidents. Pooling two “same-sentence” cases into one repair ticket. Merged evidence is contaminated evidence; pair by triple, work per incident.
  • Boundary-blind metrics. Tracking “RAG accuracy” as one number across H1/H2/H3 causes. A rising average can hide a worsening boundary โ€” report recovery per boundary.

Limits, per contract: one split test covers one incident under one snapshot and config; it does not certify any stage, does not transfer to the next identical-looking answer, and stays UNKNOWN where any artifact is unlogged.

References

  • Shahul Es, Jithin James, Luis Espinosa-Anke, and Steven Schockaert. RAGAS: Automated Evaluation of Retrieval Augmented Generation. Proceedings of EACL: System Demonstrations, 2024, pp. 150โ€“158. https://aclanthology.org/2024.eacl-demo.16/
  • Jian Xie, Kai Zhang, Jiangjie Chen, Renze Lou, and Yu Su. Adaptive Chameleon or Stubborn Sloth: Revealing the Behavior of Large Language Models in Knowledge Conflicts. International Conference on Learning Representations (ICLR), 2024. https://arxiv.org/abs/2305.13300
  • Jiawei Chen, Hongyu Lin, Xianpei Han, and Le Sun. Benchmarking Large Language Models in Retrieval-Augmented Generation. Proceedings of the AAAI Conference on Artificial Intelligence, 2024. https://arxiv.org/abs/2309.01431
  • Kevin Wu, Eric Wu, and James Zou. ClashEval: Quantifying the Tug-of-War Between an LLM’s Internal Prior and External Evidence. arXiv:2404.10198, 2024. https://arxiv.org/abs/2404.10198
  • Yukun Huang, Sanxing Chen, Hongyi Cai, and Bhuwan Dhingra. To Trust or Not to Trust? Enhancing Large Language Models’ Situated Faithfulness to External Contexts. International Conference on Learning Representations (ICLR), 2025 (arXiv:2410.14675). https://arxiv.org/abs/2410.14675

Debugging Checklist

  • Input, snapshot, prompt hashes, top-k, budget, model params pinned?
  • All three artifacts frozen with hashes before explanations read?
  • H1/H2/H3 numeric predictions pre-written (ranks, cutoffs, offsets)?
  • Boundaries diffed in order by hash (not topic)?
  • Model self-report quarantined (never cited as handoff evidence)?
  • H1 repair includes an abstention path (retrieval miss โ†’ “no record found”, not invention)?
  • H3 sub-mode identified (H3a contradicts a correct context vs H3b follows an incorrect context) โ€” supporting line’s factual correctness confirmed before generation repair?
  • H3a repair accounts for partially-matching distractors in context (confirmation bias)?
  • Single-boundary repair re-run โ‰ฅ3 times with discriminant prediction?
  • Fresh triple frozen per incident (no artifact reuse across incidents)?
  • Pairing decided by triple-pattern match (not sentence identity)?
  • No scores, confidence, agreement, single runs, or symptoms cited as verdict?

What This Chapter Established

  • The full A/B/C attribution: retrieval vs. assembly vs. generation separated by ordered byte-diffs, demonstrated on the constructed refund/RB-8814 triple (rank 47, cut at 8,192 vs. offset 9,104, sent-offset 1,204 contradicted), no measured runs claimed.
  • The discriminant-repair criterion: a correct attribution predicts boundary-specific recovery.
  • Lab 33 as a proposed triple-diff record the reader executes; the Retriever-vs-Generator Split Test contract (accepts/performs/can-establish/cannot-establish/next-action).
  • The incident-pairing rule as the routing discipline: triples pair, sentences do not; pairings expire on config change.
  • What was NOT proved: any retriever or generator quality claim, any cross-incident generality, or any certification of the pipeline. Three incidents attributed; nothing universal.
  • Research grounding: the retrieval-vs-generation split is standard RAG evaluation (RAGAS context relevance โ‰ˆ H1, faithfulness โ‰ˆ H3); H3 is a context-memory conflict with two modes โ€” H3a, contradicting a correct context under a partially-matching distractor (confirmation bias โ€” Xie et al.), and H3b, faithfully following an incorrect context (the dominant mode: models override a correct prior with wrong retrieved content >60% of the time, most when unconfident โ€” ClashEval, Wu et al.; Huang et al.) โ€” so an H3 verdict is followed by checking whether the context was actually right; incident A is a negative-rejection failure โ€” the H1 repair needs an abstention path, not just better retrieval (Chen et al.).
  • Position in the arc: Chapter 3’s miniature now run at full depth. Boundaries settled per incident; generation-contradiction cases (H3) open the next question.

Next

Attribution tells you the contradiction happened at generation. It does not give you a method for dissecting a multi-claim answer into checkable pieces โ€” generation failures arrive as paragraphs, not single lines. Chapter 34, “Debugging Hallucinations,” operationalizes claim-by-claim verification; which claims the evidence supports is its chapter’s to establish, not this one’s.