AI seeria intervjuuküsimus 11: Kuidas RAG-i optimeerida?
RAG-i optimeerimine ei ole ühe etapi kohandamine, vaid kogu ahela optimeerimise protsess. Allpool annan süstemaatilised optimeerimisstrateegiad neljast dimensioonist: andmeindeksi pool, otsingu pool, genereerimise pool ja hindamise pool, ning lisan intervjuus mainitavad praktilised kogemused.
1. Andmeindeksi poole optimeerimine („teadmusbaasi“ kvaliteedi parandamine)
See on kõige kergemini tähelepanuta jääv, kuid kõige kiiremini tulemusi andev koht.
| Optimeerimispunkt | Probleemi ilming | Täpsem tegevus | Tulemusnäitaja |
|---|---|---|---|
| Dokumendi parsimine | PDF-i tabelid, vooskeemid jäetakse tähelepanuta või tekst on segamini, järjestus vale. | Kasuta paremat parsimise teeki (nt unstructured, pypdf paigutuse säilitamise režiim); tabelite jaoks kasuta pandas-i ja teisenda need Markdown-iks. |
Meeldetuletuse määr +5~15% |
| Teksti tüki suurus | Chunk on liiga väike, kaotab konteksti (nt „Tema tänavune tulude kasv“ – „Tema“ viide kaob); chunk on liiga suur, otsingumüra palju. | Katseta erinevaid chunk suurusi (256/512/768 tokenit), kattuvus 10~20%; pikkade dokumentide puhul tükelda semantiliste piiride järgi (lõik/pealkiri) mitte fikseeritud pikkuse järgi. | Tabamuse määr / truudus |
| Metaandmete lisamine | Leitakse asjakohane lõik, kuid allikat või aega ei saa jälgida, või on vaja valdkonna järgi filtreerida. | Lisa igale chunk-ile metaandmed: source (failinimi/URL), timestamp, page_num, doc_type. Otsingul kasuta filtreid (nt doc_type == 'legal'). |
Filtreerimise täpsus |
| Manustamismudeli valik | Üldine manustamine vertikaalsetes valdkondades (meditsiin, kood, õigus) töötab halvasti. | Kasuta valdkonnale kohandatud mudeleid (BGE‑large‑zh, GTE‑Qwen2‑7B‑instruct); või kohanda oma manustamismudelit (triplet loss). | Otsingu MRR@10 +10~20% |
2. Otsingu poole optimeerimine („raamatu sirvimise“ täpsemaks muutmine)
Otsing määrab LLM-ile antavate „viidete” kvaliteedi.
| Optimeerimispunkt | Probleemi ilming | Täpsem tegevus | Tulemus |
|---|---|---|---|
| Hübriidotsing | Vektorotsing ei suuda täpseid termineid sobitada (nt toote mudel ABC-123), märksõnaotsing ei mõista sünonüüme. |
Kasuta samaaegselt vektorotsingut (semantiline) ja BM25-i (märksõna), kaalutud (nt 0.7vektor + 0.3BM25) või rerank ühendamine. | Meeldetuletuse määr +10~25% |
| Ümberjärjestamine (Rerank) | Vektorotsingu esimesed tulemused pole alati kõige asjakohasemad, 10. tulemus võib olla parim. | Kasuta cross-encoder mudelit (nt BGE‑reranker-v2, Cohere Rerank) kandidaatide hulga (nt esimesed 20) uuesti hindamiseks, võta top-K. |
Tabamuse märkimisväärne paranemine (eriti top‑1) |
| Päringu ümberkirjutamine | Kasutaja küsimus on ebamäärane või mitme dialoogi puhul ebaselge („Selle hind?”). | Kasuta LLM-i algse küsimuse ümberkirjutamiseks otsingule sobivamaks (nt „Kui palju maksab iPhone 15?”); või täienda dialoogiajaloo abil. | Meeldetuletuse määr +5~15% |
| HyDE | Kasutaja küsimus on liiga lühike või abstraktne (nt „Räägi fotosünteesist”), otsene otsing on halb. | Lase LLM-il kõigepealt luua hüpoteetiline vastus, seejärel kasuta seda vastust dokumentide otsimiseks. | Sobib avatud valdkondadele, kuid mitte täpsetele faktipäringutele |
| Otsitavate arvu (Top‑K) reguleerimine | K liiga väike – võib kaotada olulist teavet; K liiga suur – suurendab tokenite tarbimist ja müra. | Katseta K=3/5/10, jälgi meeldetuletuse määra ja vastuse truuduse tasakaalu. | Tõhususe ja tulemuse kompromiss |
3. Genereerimise poole optimeerimine (LLM-i paremaks viidete kasutamiseks)
Kui otsing on täpne, aga viip või mudel on halb, pole kasu.
| Optimeerimispunkt | Probleemi ilming | Täpsem tegevus | Tulemus |
|---|---|---|---|
| Viibatehnika | LLM ignoreerib otsingutulemusi või fabritseerib. | Selge juhis: „Vasta ainult allolevate viidete põhjal. Kui teave pole piisav või pole asjakohane, vasta „Pole piisavalt teavet“.” Lisa few-shot näited, kuidas allikaid tsiteerida. | Truudus +20~40% |
| Konteksti tihendamine | Otsingutulemused on liiga pikad (ületavad mudeli akent) või sisaldavad palju müra. | Kasuta LLMLingua või valikulist konteksti tihendamist, säilitades kõige asjakohasemad laused enne LLM-ile saatmist. |
Vähendab teabe kadumise riski |
| LLM-i mudeli uuendamine | Väike mudel (7B) ei suuda keerulist arutlust teha või ei mäleta pikka konteksti. | Vaheta võimsama mudeli vastu (GPT‑4o, Claude 3.5 Sonnet, Qwen2.5‑72B). | Arutlustäpsus suureneb oluliselt |
| Voogedastus ja tsiteerimine | Kasutaja ei saa vastuse usaldusväärsust kontrollida. | Genereerimisel lase LLM-il väljastada [citation:1], mis vastab otsingudokumendi numbrile. Tagaküljel lisa originaallink. |
Kasutaja usaldus + silumisvõimalus |
| Keeldumise kalibreerimine | Mudel fabritseerib, kui ei tohiks, või ütleb „ei tea”, kui peaks vastama. | Sea sarnasuse läviväärtus: kui otsitud top‑1 chunk-i koosinuskaugus küsimusest on alla 0.7, anna LLM-ile teada „teave pole asjakohane”. | Hallutsinatsioonide määra vähenemine |
4. Hindamise ja iteratsiooni pool (teadmine, kuhu optimeerida)
Ilma mõõdikuteta pole võimalik optimeerida.
| Optimeerimispunkt | Tegevus | Mõõdikud |
|---|---|---|
| Hindamiskomplekti loomine | Valmista 100–300 reaalset kasutajaküsimust + standardvastused + õiged otsingudokumendi ID-d. | Katab erinevad raskusastmed ja kavatsused. |
| Automaatne hindamine | Kasuta RAGAS-i (Faithfulness, Answer Relevance, Context Recall) või TruLens-i. | Kolm põhimõõdikut: truudus, vastuse asjakohasus, konteksti meeldetuletus. |
| Käsitsi hindamine | Iga nädal testi 20 halba juhtumit, analüüsi veatüüp (otsingu ebaõnnestumine / genereerimisviga / teadmusbaasi puudumine). | Parenduste prioriteetide järjestus. |
| A/B test | Tootmiskeskkonnas jaota erinevad otsingustrateegiad (nt BM25 vs hübriidotsing) erinevatesse gruppidesse. | Online-mõõdikud: kasutaja rahulolu, vastuseta määr. |
5. Intervjuus mainitavad „praktilised kogemused“ (lisapunktid)
„Minu juhitud RAG-projektis oli alguses baastabamuse määr 67%. Tegin kolm asja:
1. Tükeldamine muudeti fikseeritud 1024-lt dünaamiliseks semantiliseks tükeldamiseks (pealkirja+lõigu järgi), tabamus tõusis 74%-ni;
2. Lisasin hübriidotsingu (vektor + BM25) ja väikese rerank mudeli, tabamus tõusis 83%-ni;
3. Optimeerisin viipa ja sundisin[teavet ei leitud], hallutsinatsioonimäär langes 22%-lt alla 5%.Lisaks rajasime pideva hindamise torujuhtme: enne iga muudatust ajasime 200 küsimuse RAGAS skoorid läbi, tagamaks, et halvenemist ei toimuks.”
Kokkuvõte: Täielik RAG-i optimeerimise teekaart
Andmekiht ─→ Dokumendi puhastamine, tükeldamise optimeerimine, metaandmete rikastamine, valdkonna manustamine
Otsingukiht ─→ Hübriidotsing, rerank, päringu ümberkirjutamine, HyDE, Top-K reguleerimine
Genereerimiskiht ─→ Viiba tugevdamine, juhised, tihendamine, tsiteerimine, keeldumislävi
Hindamiskiht ─→ Hindamiskomplekt, RAGAS, käsitsi analüüs, A/B katse
评论
暂无已展示的评论。
发表评论(匿名)