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?