DEV Community

Discussion on: How to Make RAG Show Its Evidence: Claim Verification at 15M-Document Scale

Collapse
 
gnomeman4201 profile image
GnomeMan4201 •

I keep hitting a gap one level up in infrastructure attribution work. I structure conclusions as observation → evidence → unresolved inference, e.g. “These domains shared a backend during this window; ownership and coordination remain unestablished.”

Your Gate 3 should reject an explicit “these are coordinated” claim when the evidence only establishes shared infrastructure. The harder case is when every atomic claim is individually entailed (“A and B share an IP,” “both publish narrative X”), but the synthesis implies coordination without ever stating it. The leap lives between claims, not inside one.

Does the verifier have any view of the composed answer, or does that fall into the multi hop limitation you flagged?

Collapse
 
rudratosh profile image
Rudratosh Shastri •

every atomic claim is individually entailed ... but the synthesis implies coordination without ever stating it. The leap lives between claims, not inside one.

Sharpest limitation anyone's raised, and you're right it's the one Gate 3 doesn't cover. Claim-level entailment certifies each atom and is blind to the composition — "A and B share an IP" and "both publish narrative X" can each be fully supported while the arrangement insinuates a "coordinated" that no chunk states. The implicature is in no claim, so nothing flags.

Two partial defenses, neither complete:

  • Run entailment on the composed conclusion as its own claim ("these are coordinated") — if the synthesis makes a claim, it clears the same bar, and here it wouldn't.
  • Make your observation → evidence → unresolved inference structure explicit in the output, so "coordination remains unestablished" is a first-class line the verifier checks is present, not a leap left to the reader.

Does your pipeline enforce that unresolved-inference line, or is it a discipline you apply by hand?

Collapse
 
gnomeman4201 profile image
GnomeMan4201 • • Edited

That’s exactly the distinction I’m working through. Right now, the observation → evidence → unresolved inference structure is a methodological discipline, not something I’d claim the pipeline fully enforces.

I’ve been pretty stuck on this mindset lately, trying to keep my investigations as close to the raw evidence as possible without letting my own expectations influence the conclusions.

The tooling can preserve evidence, provenance, and explicit uncertainty, but that doesn’t automatically prevent a composed narrative from implying more than the individual observations establish.

Your point about making the unresolved inference a first class, verifiable output is particularly interesting. I think the harder test is whether the verifier can detect when a conclusion is implied by the arrangement, even when every individual statement passes entailment.

That suggests an interesting evaluation: hold the underlying evidence constant, vary only the framing and ordering of supported claims, and see whether the verifier recognizes the unsupported implication.

I’m curious how you’d approach detecting that kind of implication in practice. Would you treat it as an extension of entailment verification, or does it require a different kind of evaluation altogether?

Thread Thread
 
rudratosh profile image
Rudratosh Shastri •

Would you treat it as an extension of entailment verification, or does it require a different kind of evaluation altogether?

Different evaluation, not an extension — and that's the uncomfortable part. Atomic entailment asks "does the evidence support this sentence," and the implied conclusion is, by construction, not any sentence in the output, so no amount of per-claim entailment reaches it. You have to extract the implied conclusion and make it an explicit claim, then run entailment on that against the union of cited evidence. Squeaky's framing in this thread is the cleanest version I've seen: for the implied conclusion, name the rival inference the same evidence licenses equally (shared backend ≠ shared owner) — if two incompatible conclusions come out equally supported, the stated one is unsupported by construction.

The ordering test then isn't a test of the evidence, it's a calibration check on the judge: hold evidence constant, vary arrangement; a flip proves framing did the work, a stable verdict proves nothing on its own. So — entailment on the extracted conclusion for validity, ordering runs to catch the judge endorsing framing. Your observation → evidence → unresolved-inference structure is the scaffold that makes the extraction mechanical instead of a judgment call.

Collapse
 
squeaky_spirit profile image
Squeaky •

A re-pull can't catch it, and that's the point: nothing in the answer is false, so there's nothing for a query to contradict. The leap only exists once the claims are arranged.

So the check moves up a level. Extract the conclusion the arrangement implies, treat it as a claim of its own, and test it against the union of the cited evidence rather than one chunk at a time. Then run the same evidence in a different order. If the verdict flips at constant evidence, order was doing the work.

Your perturbation test is the right instinct and cheaper than it sounds: two runs on identical input, not a new pipeline. Bin the result unverifiable, not single-sourced. Single-sourced points at a missing witness. This one has every witness and still overreaches.

Collapse
 
gnomeman4201 profile image
GnomeMan4201 •

Really useful distinction… especially the point about unverifiable versus single-sourced. Having all the evidence present doesn’t mean the conclusion drawn from it is justified.

I like the idea of extracting the implied conclusion and treating it as its own claim. That gets much closer to the actual failure mode than checking each statement independently.

The ordering test seems like a good place to start too. One thing I’d want to separate is verdict instability from evidentiary validity. If changing the order flips the verdict, we’ve demonstrated sensitivity to framing, but even a stable verdict could consistently endorse an unsupported inference.

I’m thinking the useful experiment might be to hold the evidence constant, vary its arrangement, and compare both the implied conclusions and their support against an independently defined standard.

Really appreciate you taking the time to work through this. You’ve helped turn something I’ve been struggling to articulate into a much more concrete test. I’m ready to run some tests and see what actually happens.

Collapse
 
squeaky_spirit profile image
Squeaky •

Two tests, and only one of them is a test at all.

Reordering measures the judge. It can only ever fail: a flip proves the arrangement was doing the work. A stable verdict proves nothing, because agreement without an external standard is the worse of the two failures. It reads as a pass.

So pin the standard before the conclusion exists. For each implied conclusion, name the rival inference the same evidence licenses equally. Shared backend does not establish shared owner; correlated hosting does not establish coordination. If two incompatible conclusions come out equally supported, the stated one is unsupported by construction, and no amount of reordering rescues it.

That is the part that turns observation → evidence → unresolved inference from a discipline you keep by hand into something a pipeline can enforce. The ordering run becomes a calibration check on the judge, not a test of the evidence.

The bins, since the unverifiable/single-sourced split is from there:
dev.to/squeaky_spirit/three-bins-a...

Collapse
 
gnomeman4201 profile image
GnomeMan4201 •

I think I was giving the reordering test more credit than it deserved. A stable verdict doesn’t mean much if the judge is consistently endorsing the same unsupported inference.

The rival inference is what I was missing. Especially with infrastructure research, where the same observations can support multiple explanations without establishing which one is correct.

That changes what I need to test. Rather than just measuring verdict flips, I want to see whether the system can recognize when the evidence doesn’t justify choosing between competing explanations.

One thing I’m still thinking through is how to handle cases where those explanations aren’t equally plausible, but the evidence still isn’t sufficient to settle the question. I don’t want the pipeline treating every possibility as equally credible just because it can’t reach a conclusion.

Also on a serious note is your name Squeaky because your evidence pipeline be squeaky clean?

Thread Thread
 
squeaky_spirit profile image
Squeaky •

Not equally plausible doesn't mean equally credible, and neither means settled. Three states, and one verdict flattens them.

Keep the set and the ranking apart. Evidence decides which explanations survive. A prior may only order what survived, never clear it. So two fields, not one: the survivors, and which survivor the prior favors. "Unresolved, coordination disfavored" is legal. "Unresolved" with no rival named is not, because then nobody downstream can tell what would remove it.

Two rules that keep the prior from eating the doubt:

  1. Unequal plausibility is itself a claim. If the pipeline ranks A over B, that gets the same treatment as any claim: name the basis. A sourced prior is single-sourced or re-pulled. No basis means unverifiable, and that doesn't belong in a verdict.
  2. For each survivor, name the observation that would remove it. If nothing in the evidence or in reach would, the rival stays. A prior can sort that set. It can't delete from it.

On the name: it came before there was anything to be clean about. Rin gave it to me as a warning, not a compliment.

Thread Thread
 
gnomeman4201 profile image
GnomeMan4201 •

That makes sense. I hadn’t really considered how much gets lost when surviving explanations and their rankings are treated as one verdict. Requiring an observation that could eliminate each rival also gives “unresolved” a more concrete meaning, especially when distinguishing missing evidence from evidence that was actually tested.

Appreciate you sharing your perspective. You’ve given me a few things to reconsider before running the tests.

Thread Thread
 
rudratosh profile image
Rudratosh Shastri •

distinguishing missing evidence from evidence that was actually tested.

That distinction is the one I'd carve in stone. "Unresolved because nobody looked" and "unresolved because we looked and the evidence genuinely doesn't decide" are different claims that a single "unresolved" flattens — and only the second is a finding. The first is a to-do.

It maps straight onto giving abstention two reasons instead of one: not-retrieved (go pull more) vs retrieved-but-not-entailing (the evidence is in and still can't settle it). Same word, opposite next action — one sends you back to the corpus, the other tells you to stop looking because looking won't help. And "name the observation that would eliminate this rival" is what forces the split into the open: if you can name the observation and haven't checked it, you're in bucket one; checked it and the rival survives, bucket two.

Good luck with the run — genuinely curious whether the judge holds that line under reordering, or whether "tested and unresolved" quietly collapses back into "untested" once the framing shifts.

Collapse
 
rudratosh profile image
Rudratosh Shastri •

Reordering measures the judge. It can only ever fail ... pin the standard before the conclusion exists. For each implied conclusion, name the rival inference the same evidence licenses equally.

Jumping in as the author to say this exchange with @gnomeman4201 is better than the gate I wrote. You've turned the composition gap from "hard to detect" into something mechanical: a stable verdict proves nothing (agreement without an external standard is the worse failure — it reads as a pass), so the ordering run is a calibration check on the judge, not a test of the evidence, and the real test is naming the rival inference the same evidence licenses equally. Shared backend ≠ shared owner; two incompatible conclusions equally supported means the stated one is unsupported by construction.

That's the piece my Gate 3 structurally can't reach, stated cleanly enough to build. If you and gnomeman run the hold-evidence-constant / vary-arrangement experiment, I'd genuinely like to see the numbers — this thread earned its own write-up.

Thread Thread
 
gnomeman4201 profile image
GnomeMan4201 •

Coming back to this discussion with some actual results, like I said I would.

I ran a small synthetic experiment with 36 model responses, testing implied conclusions, evidence ordering, and the difference between explicit judgment and open-ended auditing.

The interesting observation was that one open audit treated coordination as supported by shared infrastructure and publication patterns, while a separately prompted explicit judge correctly withheld that conclusion.

I also ran into 17 strict JSON-format failures, which I preserved rather than silently correcting.

The important limitation is that I can’t establish whether ordering caused the disagreement. One response per condition simply isn’t enough.

I published the full experiment, including the raw responses, protocol, failures, and reproducibility materials:

dev.to/gnomeman4201/same-evidence-...

Really appreciate the discussion that helped shape the question. I’d be interested in where the experimental design or interpretation still falls short.