Swapping pretraining objective cuts entity-swap false-accepts from 46% to 5% with zero training

Reasonable_Royal_621 · reddit · 2026-09-14

While red-teaming a semantic-cache verifier across five hard categories, the author found fine-tuning on adversarial examples fixed four of them — but entity swaps (the "George H.W. Bush vs George W. Bush" kind) stayed stuck at 46.2% false-accept through four rounds of data fixes. Removing the category's 28 training examples changed nothing: it wasn't a data problem.

The fix was dumb-simple: swap the pretrained objective. The default verifier was a cross-encoder pretrained on MS MARCO (passage-query relevance); swapping in a same-size cross-encoder pretrained on NLI (entailment/contradiction) with zero training dropped entity-swap false-accepts from 46.2% to 5.1% — nearly 90%. Negation and quantity-swap zero-shot performance also beat the entire fine-tuned pipeline.

Caveats and follow-up:

Core insight: "the model can't learn this" may mean it never saw the relationship during pretraining — fine-tuning can only sharpen what's already there. Picking the right pretraining objective mattered more than every data trick combined. Caveat: swapping the objective also swapped architecture and tokenizer, and only one NLI model was tested. Code and writeup: CacheVerifier on GitHub, section 4.3 of Paper D.

Original post →

More from Research

Research channel →