← 返回列表

AI-serie interviewvragen 11: Hoe RAG optimaliseren?

RAG optimaliseren is geen kwestie van één enkele aanpassing, maar een volledige ketenoptimalisatie. Hieronder geef ik systematische strategieën vanuit vier dimensies: data-indexatie, retrieval, generatie en evaluatie, samen met praktijkervaring die je in een sollicitatiegesprek kunt noemen.


1. Optimalisatie van data-indexatie (verbeteren van de kwaliteit van de "kennisbank")

Dit wordt het vaakst over het hoofd gezien, maar levert de snelste resultaten op.

Optimalisatiepunt Probleem Aanpak Effectiviteitsindicator
Document parsing Tabellen en stroomdiagrammen in PDF's worden genegeerd, of tekst is vervormd en de volgorde is verkeerd. Gebruik een betere parsingbibliotheek (bijv. unstructured, pypdf met layoutbehoud); extraheer tabellen met pandas en zet ze om naar Markdown. Recall +5~15%
Grootte van tekstfragmenten Als chunk te klein is, gaat context verloren (bijv. "zijn omzetgroei dit jaar" — "zijn" verwijzing verdwijnt); te groot leidt tot ruis. Experimenteer met verschillende chunkgroottes (256/512/768 tokens), overlap instellen op 10~20%; voor lange documenten, splitsen op semantische grenzen (paragraaf/kop) in plaats van vaste lengte. Hitrate / getrouwheid
Metadata toevoegen Relevante alinea's worden gevonden maar kunnen niet worden herleid tot bron of tijd, of moeten per domein worden gefilterd. Voeg metadata toe aan elke chunk: source (bestandsnaam/URL), timestamp, page_num, doc_type. Gebruik filters bij retrieval (bijv. doc_type == 'legal'). Filterprecisie
Keuze van embeddingmodel Algemene embeddings presteren slecht in verticale domeinen (medisch, code, juridisch). Gebruik domein-finetuned modellen (BGE‑large‑zh, GTE‑Qwen2‑7B‑instruct); of finetune je eigen embeddingmodel (met triplet loss). Retrieval MRR@10 +10~20%

2. Optimalisatie van retrieval (het "bladeren" nauwkeuriger maken)

Retrieval bepaalt de kwaliteit van de "referentiemateriaal" die aan de LLM wordt gevoed.

Optimalisatiepunt Probleem Aanpak Effect
Hybride retrieval Vector retrieval kan exacte termen niet matchen (bijv. productmodel ABC-123), keyword retrieval begrijpt synoniemen niet. Gebruik tegelijkertijd vector retrieval (semantisch) en BM25 (keywords), weeg samen (bijv. 0.7vector + 0.3BM25) of fuseer via reranking. Recall +10~25%
Herrangschikking (Rerank) De eerste resultaten van vector retrieval zijn niet altijd het relevantst; het 10e resultaat is vaak beter. Gebruik een cross-encoder model (bijv. BGE‑reranker-v2, Cohere Rerank) om de kandidaatset (bijv. top 20) opnieuw te scoren, neem top-K. Hitrate significant verbeterd (vooral top-1)
Query-herschrijving Gebruikersvragen zijn vaag of in meerdere beurten ("Wat is de prijs?"). Laat een LLM de oorspronkelijke vraag herschrijven naar een geschiktere vorm (bijv. "Wat is de prijs van iPhone 15?"); of vul aan met gespreksgeschiedenis. Recall +5~15%
HyDE Gebruikersvragen zijn te kort of abstract (bijv. "Vertel me over fotosynthese"), directe retrieval werkt slecht. Laat LLM eerst een hypothetisch antwoord genereren, gebruik dat antwoord om documenten te zoeken. Geschikt voor open domeinen, niet voor feitelijke precieze vragen
Aanpassing Top-K Te kleine K kan cruciale informatie missen; te grote K verhoogt tokenverbruik en ruis. Experimenteer met K=3/5/10, balans tussen recall en antwoordgetrouwheid. Efficiëntie vs. effectiviteit trade-off

3. Optimalisatie van generatie (zorg dat de LLM de referentiematerialen goed gebruikt)

Zelfs met goede retrieval zijn slechte prompts of modellen nutteloos.

Optimalisatiepunt Probleem Aanpak Effect
Prompt engineering LLM negeert retrieval-inhoud of verzint dingen. Geef duidelijke instructies: "Beantwoord uitsluitend op basis van de volgende referentie. Als de informatie ontoereikend of niet relevant is, antwoord dan 'Geen voldoende informatie'." Voeg few-shot voorbeelden toe die laten zien hoe je bronnen citeert. Getrouwheid +20~40%
Contextcompressie Opgehaalde inhoud is te lang (boven modelcontext) of grotendeels ruis. Gebruik LLMLingua of Selective Context om de meest relevante zinnen te comprimeren voordat ze naar de LLM worden gestuurd. Verminderd risico op informatieverlies
LLM-modelupgrade Een klein model (7B) kan geen complexe redenering uitvoeren of lange context onthouden. Vervang door sterker model (GPT‑4o, Claude 3.5 Sonnet, Qwen2.5‑72B). Redeneernauwkeurigheid aanzienlijk verbeterd
Streaming en citaten Gebruikers kunnen de betrouwbaarheid van antwoorden niet verifiëren. Laat LLM [citation:1] uitvoeren, corresponderend met het nummer van het opgehaalde document. Voeg aan de backend de originele link toe. Gebruikersvertrouwen + debugbaarheid
Weigering afstemmen Model verzint wanneer het niet moet antwoorden, of zegt onterecht dat het niet weet. Stel een drempel voor gelijkenis in: als de cosinusovereenkomst van de top-1 chunk met de vraag lager is dan 0.7, instrueer de LLM "Informatie niet relevant". Verlaagt hallucinatiegraad

4. Evaluatie en iteratie (weten waar te optimaliseren)

Zonder meting geen optimalisatie.

Optimalisatiepunt Aanpak Indicator
Opzetten van evaluatieset Bereid 100~300 echte gebruikersvragen voor + standaardantwoorden + correcte document-ID's. Dek verschillende moeilijkheden en intenties.
Geautomatiseerde evaluatie Gebruik RAGAS (Faithfulness, Answer Relevance, Context Recall) of TruLens. Drie kernindicatoren: getrouwheid, antwoordrelevantie, context recall.
Handmatige evaluatie Test elke week 20 slechte cases, analyseer fouttypes (retrievalfout / generatiefout / ontbrekende kennis). Prioritering van verbeteringen.
A/B-test Splits in productieomgeving om verschillende retrievalstrategieën te testen (bijv. BM25 vs. hybride retrieval). Online indicatoren: gebruikerstevredenheid, percentage geen antwoord.

5. "Praktijkervaring" om te noemen in sollicitatiegesprekken (pluspunt)

"In mijn RAG-project was de baseline hitrate slechts 67%. Ik heb drie dingen gedaan:
1. Chunken veranderd van vaste 1024 naar dynamische semantische splitsing (op basis van kop en paragraaf), hitrate verhoogd naar 74%;
2. Hybride retrieval toegevoegd (vector + BM25) en een kleine rerank model, hitrate gestegen naar 83%;
3. Prompt geoptimaliseerd en verplicht 'Geen relevante informatie gevonden' hallucinatiegraad verlaagd van 22% naar onder 5%.

Daarnaast hebben we een continue evaluatiepijplijn opgezet, voor elke wijziging werd de RAGAS-score op 200 vragen getest om regressie te voorkomen."


Laatste samenvatting: een complete RAG-optimalisatie roadmap

Datalaag ─→ Documentopschoning, chunkoptimalisatie, metadata-verbetering, domein-embedding
Retrievallayer ─→ Hybride retrieval, reranking, query herschrijving, HyDE, Top-K afstemming
Generatielayer ─→ Prompt-versterking, instructies, compressie, citatie, weigeringsdrempel
Evaluatielayer ─→ Evaluatieset, RAGAS, handmatige analyse, A/B-experiment

评论

暂无已展示的评论。

发表评论(匿名)