Var går ett RAG-svar fel? En felsökning i fyra led
En kund frågar en dokumentassistent: ”Hur länge får jag returnera varan?” Assistenten hämtar rätt policy — ”Returer accepteras inom 14 dagar från köp” — men svarar ”inom 30 dagar [1]”. Svaret har en källa och ser trovärdigt ut. Ett RAG-flöde kan granskas i fyra led, och felet sitter i ett av dem.
1. Chunkning: dela utan att tappa källan
Dokumenten delas i stycken (chunks) innan de söks igenom. Varje stycke måste behålla vilket dokument det kommer från, annars går svaret inte att belägga. Ett stycke får inte blanda två dokument, och inga ord får försvinna i delningen.
Storleken är en avvägning: för små stycken saknar sammanhang, för stora späder ut det relevanta och tar plats i modellens kontext. Ändrar du storleken ska du mäta effekten, inte gissa.
2. Retrieval: hitta rätt underlag — och mät det
Sökningen rangordnar stycken efter hur väl de matchar frågan, lexikalt (BM25, nyckelord) eller semantiskt (embeddings). Vanliga frågeord som ”hur” och ”när” ska inte ge träff.
Mät sökningen för sig, skild från svaret. Recall@k är andelen frågor där rätt källa finns bland de k första träffarna. Är recall låg spelar det ingen roll hur bra modellen är — den får aldrig se rätt text. I exemplet ovan hämtades rätt källa, så sökningen är inte felet.
3. Grundning: svaret måste stödjas av källan
Här sitter felet i exemplet. Källan säger 14 dagar, svaret säger 30. Modellen har blandat in något den ”vet” från träningen i stället för att hålla sig till underlaget. Att svaret har en källhänvisning gör det värre, inte bättre: läsaren tror att påståendet är kontrollerat.
Ett enkelt, kontrollerbart krav är att varje citat ska finnas ordagrant i den citerade källan. Det kan kontrolleras automatiskt. Om påståendet i övrigt stöds av citatet måste granskas — av en människa eller en kalibrerad domare.
4. Avstå när underlag saknas
Frågar kunden något som inte står i dokumenten ska assistenten säga det, inte gissa. Ett belagt avstående — ”jag hittar inget stöd i underlaget” — är ett korrekt svar. Testa det uttryckligen med frågor som saknar svar i dokumenten.
- Behåller varje stycke sin källa?
- Är recall@k mätt på frågor som inte användes för att bygga sökningen?
- Finns varje citat ordagrant i källan?
- Avstår systemet när relevant underlag saknas?