Hónapokig stabilan működött az ügyfélszolgálati RAG rendszer - aztán egyszer csak romlani kezdett a válaszok minősége.

A válaszok korábban pontosak voltak.
A retrieval stabilan működött.
Az eval eredmények rendben voltak. Aztán valami megváltozott.

Az ügyfélszolgálat jelzi: furcsa válaszok érkeznek.
Az eval score-ok esni kezdenek.
A rendszer néha félremegy.

A fejlesztőcsapat megnézi a retrieval statisztikákat. Látszik, hogy a viselkedés megváltozott. Pedig a konfigurációhoz senki nem nyúlt.
Sem a retrieval pipeline, sem az LLM modell nem változott.

Ezért a csapat megnézi, történt-e változás a dokumentumokban. Kiderül, hogy a dokumentumok tartalma valóban megváltozott.

Egy policy frissült.
Egy FAQ át lett írva.
Egy új PDF került fel a tudásbázisba.

A retrieval pipeline konfigurációja ugyanaz maradt - de a corpus már nem. Itt jön a nehéz rész:

Nem tudják pontosan visszakövetni, hogy egy adott experiment futásakor melyik dokumentumverzió volt az indexben.

Sok rendszerben a dokumentumverzió létezik a forrásrendszerben — például SharePointban vagy egy CMS-ben, de az index és az experiment futások gyakran nincsenek egy konkrét corpus snapshothoz kötve.

Így amikor a tartalom frissül, a retrieval viselkedése is megváltozhat — anélkül, hogy a pipeline konfigurációja módosult volna.

És itt jelenik meg a valódi probléma: Tudod, hogy a dokumentum változott, de nem tudod pontosan visszabontani, hogy melyik változás milyen hatással volt a retrievalre.

– Elcsúsztak a chunk határok?
– Más szövegrész került az indexbe?
– A releváns információ már más chunkba esik?

Így nehéz eldönteni, hol kell beavatkozni:

– a dokumentum struktúráján
– a chunkoláson
– vagy a retrieval stratégián

Mindhárom kérdésre csak akkor tudsz válaszolni, ha tudod, melyik dokumentumverzióból épült az index. A probléma akkor válik kezelhetővé, ha három réteget külön választunk:

– stabil dokumentum-identitás
– verziózott dokumentumtartalom
– corpus snapshot, amely rögzíti, hogy az adott kísérlet során melyik dokumentumverzió volt aktív

Ebből épülnek a chunkok.
Azokból az index.
És ezen fut az experiment.

Így az eredmények valóban reprodukálhatók.

Ti hogyan kezelitek ezt production RAG rendszerekben?