Replikácia

Prečo RAG len na podobnosti podáva zastarané fakty: supersession slepý bod, reprodukované

June 28, 20263 min readpamäť agentov · RAG · supersession · replikácia · prísne testované
Zhrnutie

Úložisko len na podobnosti nemá model času: protirečenie je často PODOBNEJŠIE originálu než správna parafráza, takže cosine nevie, ktorá hodnota je aktuálna (AUROC ~0.6, takmer náhoda pri n=24). Nezávislá replikácia Yadavovho MemStrata (arXiv:2606.26511), ktorého deterministická oprava zráža podávanie zastaraných na ~0 %.

Krátka verzia. Pamäť, ktorá radí len podľa embedding podobnosti, nemá model času. Keď sa fakt aktualizuje (premenuje sa funkcia, zmení cena, rotuje API kľúč), stará a nová hodnota sedia v embedding priestore takmer v tom istom bode. Cosine search nedokáže rozlíšiť, ktorá je aktuálna, a ticho vráti tú zastaranú. Nečakaná časť — a dôvod, prečo ťa lepší embedder nezachráni: protirečenie (nová hodnota) je často podobnejšie originálu než verná parafráza. Nezávisle sme to reprodukovali a znovu odmerali opravu.

Toto je kreditovaná replikácia, nie objav. Supersession slepý bod pomenoval a odmeral Neeraj Yadav (MemStrata, arXiv:2606.26511, preprint z júna 2026), ktorý uvádza cosine klasifikátor na AUROC ~0.59 — takmer náhoda — a navrhuje deterministickú opravu, čo zráža podávanie zastaraných hodnôt na ~0 %. Obe polovice sú jeho. My sme to prebehli na inom stacku a shipli zero-dependency open-source implementáciu jeho opravy do inspeximus — spustiteľná potvrdenka, nie nový nápad. A základné fakty sú učebnicové: embeddery sú trénované na tematickú podobnosť a sú povestne necitlivé na negáciu (medzera STS-vs-NLI), takže preklopenie jednej hodnoty cosine takmer nepohne; oprava je klasický bi-temporal / slowly-changing-dimension vzor (Snodgrass; Kimball SCD Type 2), ktorý produkčná pamäť ako Zep/Graphiti už má.

Rozsah, nech to nikto nemusí písať do komentárov. Toto je zlyhanie úložiska len na podobnosti. Reálne systémy to už obchádzajú — upsert-by-id, metadata/recency filtre, bi-temporal okná platnosti. Úzky, odmeraný bod je, že samotný cosine signál nenesie žiadnu informáciu o supersession, takže čokoľvek, čo sa spolieha len na podobnosť pri výbere „aktuálneho faktu", je štrukturálne slepé — musíš pridať key alebo časovú vrstvu, presne to, čo tie systémy robia.

Tvrdenie, reprodukované

Na 24 faktoch (subjekt, relácia, objekt) embednutých lokálnym nomic-embed-text (centrované, lebo nomic je anizotropný):

meraniehodnota
priemerný cosine(original, protirečenie)0.768
priemerný cosine(original, parafráza-duplikát)0.843
protirečenie aspoň také podobné ako duplikát10 / 24
AUROC: "nízka podobnosť znamená supersession"0.613 (náhoda = 0.5; Yadav ~0.59)

AUROC je celý príbeh. Protirečenie — nová hodnota — je často podobnejšie originálu než skutočná parafráza, takže žiadny prah podobnosti nedokáže spoľahlivo označiť "tento záznam nahrádza tamten". To, čo sa tu reprodukuje, je smer, nie presná hodnota: pri n=24 je 95 % CI pre AUROC zhruba [0.42, 0.81] — naše 0.613 aj Yadavovo 0.59 sú štatisticky nerozoznateľné od náhody (0.5), o to práve ide. Verdikt: REPRODUCED (mechanizmus, na syntetických dátach — nie benchmark).

Čo ťa to stojí

Ulož original, potom update, potom sa spýtaj na aktuálnu hodnotu:

retrievalmiera zastaraného faktu
cosine top-1 (len podobnosť)41.7 % (10/24; Wilson CI ~[24 %, 61 %], konzistentné s Yadavovými 15–40 %)
deterministický (subjekt, relácia, objekt) key0.0 % (z konštrukcie)

Úložisko len na podobnosti podá nahradenú hodnotu veľkú časť času (tu ~40 %, so širokým pásmom pri malom n). To nie je otázka ladenia — samotný signál podobnosti je voči tomu štrukturálne slepý. Tých 0 % nie je odmerané prekvapenie: key, ktorý retire-ne starú hodnotu, ju z konštrukcie nikdy nepodá.

Oprava: key, nie prah

Podobnosť zlyháva, lebo odpovedá na nesprávnu otázku. Supersession nie je "sú tieto dva texty podobné?" — je to "opisujú tieto dva záznamy ten istý (subjekt, relácia)?" To je deterministický key, nie vzdialenosť. Keď príde nová hodnota pre existujúci (subjekt, relácia) key, retire-ni starú — žiadny embedding, žiadny LLM, žiadny prah.

Toto je presne oprava, ktorú navrhuje Yadavov paper (deterministické (subjekt, relácia, objekt) pravidlo, čo retire-ne starú hodnotu v bi-temporal ledgeri). A ešte staršie je to klasický slowly-changing-dimension / bi-temporal vzor z data warehousingu (Kimball SCD Type 2; Snodgrass). My dodávame jeho zero-dependency implementáciu v inspeximus v0.2.0:

remember("Billing API auth method: API keys", key="billing-api::auth")

retire-ne každý aktívny záznam s tým key, takže recall nikdy nevráti zastaranú hodnotu. Je to bi-temporal — back-fill staršej hodnoty neprepíše aktuálnu — a append-only: stará hodnota je degradovaná, nie zmazaná (stále dostupná s include_superseded=True). Náš prínos tu je spustiteľná open-source potvrdenka, nie mechanizmus — mechanizmus je Yadavov a vzor má desiatky rokov.

Čestné limity

FAQ

Vyrieši lepší embedding model retrieval zastaraných faktov? Nie. Problém je štrukturálny: protirečený fakt je často podobnejší originálu než parafráza (odmerali sme AUROC 0.61, takmer náhoda). Silnejší embedder posunie pásmo podobnosti, nie slepý bod.

Čo je supersession v pamäti AI? Keď je uložený fakt nahradený novšou hodnotou — premenovaná funkcia, zmenená cena, rotovaný kľúč. Pamäť bez modelu času si nechá oboje a nevie, ktorá je aktuálna.

Ako to opraviť bez LLM? Prirad faktom deterministický (subjekt, relácia) key a retire-ni starú hodnotu, keď príde nová — žiadny prah podobnosti, žiadne volanie modelu. Toto je oprava, ktorú navrhuje Yadavov MemStrata paper, a je to klasický bi-temporal / slowly-changing-dimension vzor; key, čo retire-ne starú hodnotu, podá 0 % zastaraných z konštrukcie.

Je to váš objav? Nie. Preprint Neeraja Yadava (MemStrata, arXiv:2606.26511) pomenúva slepý bod aj navrhuje deterministickú opravu. My sme nezávisle reprodukovali smer (naše AUROC ~0.61 aj jeho ~0.59 sú pri malom n nerozoznateľné od náhody) a shipli open-source implementáciu jeho opravy do inspeximus. Náš podiel je replikačná potvrdenka a spustiteľný kód, nie ten nápad.

Súvisiaci výskum

← Ďalšie texty od Agory