← 返回列表

AI serija intervjujev 11: Kako optimizirati RAG?

Optimizacija RAG ni prilagajanje ene same komponente, temveč proces celostne optimizacije. Spodaj podajam sistematične strategije optimizacije iz štirih dimenzij: strani indeksiranja podatkov, strani iskanja, strani generiranja in strani vrednotenja, skupaj s praktičnimi izkušnjami, ki jih lahko omenite na razgovoru.


1. Optimizacija na strani indeksiranja podatkov (izboljšanje kakovosti "zbirke znanja")

To je najpogosteje spregledano področje, vendar prinaša najhitrejše rezultate.

Točka optimizacije Težava Konkretni ukrep Kazalnik učinka
Razčlenjevanje dokumentov Tabele, diagrami poteka v PDF so prezrti ali besedilo je nepravilno kodirano/ nepravilnega vrstnega reda. Uporaba boljših knjižnic za razčlenjevanje (npr. unstructured, način ohranitve postavitve pypdf); za tabele uporabite pandas za ekstrakcijo in pretvorbo v Markdown. Stopnja priklica +5–15 %
Velikost kosov besedila Premajhni kosi izgubijo kontekst (npr. "njegova rast prihodkov" – "njegov" se nanaša na kaj); preveliki kosi povzročijo veliko šuma pri iskanju. Preizkusite različne velikosti kosov (256/512/768 žetonov), prekrivanje nastavite na 10–20 %; za dolge dokumente uporabite rezanje po pomenskih mejah (odstavki/naslovi) namesto fiksne dolžine. Stopnja zadetkov / zvestoba
Dodajanje metapodatkov Najdeni so pomembni odstavki, vendar ni mogoče slediti viru ali času, ali pa je potrebno filtriranje po področju. Vsakemu kosu dodajte metapodatke: source (ime datoteke/URL), timestamp, page_num, doc_type. Pri iskanju uporabite filtre (npr. doc_type == 'legal'). Natančnost filtriranja
Izbira vgradnega modela Splošni vgradni modeli so slabi v vertikalnih področjih (medicina, koda, pravo). Uporabite modele, prilagojene področju (BGE‑large‑zh, GTE‑Qwen2‑7B‑instruct) ali prilagodite svoj vgradni model (s triplet loss). MRR@10 +10–20 %

2. Optimizacija na strani iskanja (natančnejše "listanje")

Iskanje določa kakovost "referenčnega gradiva", ki se posreduje LLM.

Točka optimizacije Težava Konkretni ukrep Učinek
Mešano iskanje Vektorsko iskanje ne more natančno ujemati specifičnih izrazov (npr. model izdelka ABC-123), iskanje po ključnih besedah ne razume sinonimov. Hkratna uporaba vektorskega iskanja (pomensko) in BM25 (ključne besede) s ponderiranjem (npr. 0,7vektor + 0,3BM25) ali združitvijo z rerank. Stopnja priklica +10–25 %
Ponovno razvrščanje (Rerank) Prvih nekaj rezultatov vektorskega iskanja ni nujno najbolj relevantnih, 10. je najboljši. Z modelom cross‑encoder (npr. BGE‑reranker-v2, Cohere Rerank) ponovno ocenite kandidate (npr. prvih 20) in vzemite top‑K. Bistveno izboljšanje stopnje zadetkov (zlasti top‑1)
Prepisovanje poizvedb Uporabnikova vprašanja so nejasna ali pa v večobratnem pogovoru reference niso jasne ("Koliko stane?"). Z LLM preoblikujte prvotno vprašanje v obliko, bolj primerno za iskanje (npr. "Koliko stane iPhone 15?"); ali dopolnite z zgodovino pogovora. Stopnja priklica +5–15 %
HyDE Uporabnikovo vprašanje je prekratko ali preveč abstraktno (npr. "Povej o fotosintezi"), neposredno iskanje je slabo. Naj LLM ustvari hipotetičen odgovor, nato ta odgovor uporabite za iskanje po dokumentih. Primerno za odprta področja, ne pa za dejstvena natančna vprašanja
Prilagajanje števila iskanih kosov Top‑K Premajhen K lahko spregleda ključne informacije; prevelik K poveča porabo žetonov in šum. Preizkusite K=3/5/10, opazujte ravnovesje med stopnjo priklica in zvestobo odgovora. Kompromis med učinkovitostjo in kakovostjo

3. Optimizacija na strani generiranja (da LLM dobro izkoristi referenčno gradivo)

Tudi če je iskanje natančno, slaba navodila ali šibek model ne bodo delovali.

Točka optimizacije Težava Konkretni ukrep Učinek
Inženiring pozivov LLM ignorira najdeno vsebino ali si izmišlja. Jasno navodilo: "Odgovorite samo na podlagi priloženih referenc. Če informacije niso dovolj ali niso relevantne, odgovorite: 'Ni dovolj informacij.'" Dodajte few‑shot primere, ki prikazujejo navajanje virov. Zvestoba +20–40 %
Stiskanje konteksta Najdena vsebina je predolga (presega kontekstno okno modela) ali večinoma šum. Uporabite LLMLingua ali selektivno stiskanje konteksta, ohranite najbolj relevantne stavke, nato pošljite LLM. Zmanjšanje tveganja izgube informacij
Nadgradnja LLM Majhen model (7B) ne zmore kompleksnega sklepanja ali dolgega konteksta. Zamenjajte z močnejšim modelom (GPT‑4o, Claude 3.5 Sonnet, Qwen2.5‑72B). Bistveno izboljšanje natančnosti sklepanja
Pretakanje in citiranje Uporabnik ne more preveriti verodostojnosti odgovora. Med generiranjem naj LLM izpiše [citation:1], ki ustreza številki najdenega dokumenta. Na zadnji strani priložite povezavo do izvirnika. Zaupanje uporabnika + možnost odpravljanja napak
Kalibracija zavrnitve odgovora Model si izmišlja, ko ne bi smel, ali pa reče "ne vem", ko bi moral odgovoriti. Nastavite prag podobnosti: če je kosinusna podobnost med najdenim top‑1 kosom in vprašanjem nižja od 0,7, naj LLM sporoči, da gradivo ni relevantno. Zmanjšanje stopnje halucinacij

4. Stran vrednotenja in iteracije (vedeti, kam prilagoditi)

Brez meritev ni mogoče optimizirati.

Točka optimizacije Ukrep Kazalnik
Vzpostavitev evaluacijskega nabora Pripravite 100–300 realnih uporabniških vprašanj + standardne odgovore + pravilne ID najdenih dokumentov. Zajemite različne težavnosti in namene.
Avtomatizirano vrednotenje Uporabite RAGAS (Faithfulness, Answer Relevance, Context Recall) ali TruLens. Trije ključni kazalniki: zvestoba, relevantnost odgovora, priklic konteksta.
Ročno vrednotenje Tedensko preverite 20 slabih primerov, analizirajte vrsto napak (napaka iskanja / napaka generiranja / manjkajoča zbirka znanja). Določite prioritete izboljšav.
A/B testiranje V produkcijskem okolju testirajte različne strategije iskanja (npr. BM25 vs mešano iskanje) na skupinah. Spletni kazalniki: zadovoljstvo uporabnikov, stopnja neodgovorjenih vprašanj.

5. "Praktične izkušnje" za omeniti na razgovoru (dodatna točka)

"V projektu RAG, ki sem ga vodil, je bila začetna stopnja zadetkov le 67 %. Naredil sem tri stvari:
1. Spremenil sem rezanje kosov iz fiksnih 1024 na dinamično pomensko rezanje (po naslovih in odstavkih), stopnja zadetkov se je dvignila na 74 %;
2. Dodal sem mešano iskanje (vektor + BM25) in majhen model za ponovno razvrščanje, stopnja zadetkov je narasla na 83 %;
3. Optimiziral sem navodila in zahteval obvezno uporabo [Ni najdenih ustreznih informacij], stopnja halucinacij je padla z 22 % na manj kot 5 %.

Poleg tega smo vzpostavili stalno evaluacijsko cevovod, ki je pred vsako spremembo zagnal RAGAS ocene na 200 vprašanjih, da smo zagotovili, da ni prišlo do poslabšanja."


Končni povzetek: Celoten načrt optimizacije RAG

Podatkovna plast ─→ Čiščenje dokumentov, optimizacija kosov, obogatitev metapodatkov, področni vgradni modeli
Iskalna plast ─→ Mešano iskanje, ponovno razvrščanje, prepisovanje poizvedb, HyDE, prilagajanje Top-K
Generativna plast ─→ Okrepitev pozivov, zahteve po navodilih, stiskanje, citiranje, prag zavrnitve
Evalvacijska plast ─→ Evalvacijski nabor, RAGAS, ročna analiza, A/B eksperimenti

评论

暂无已展示的评论。

发表评论(匿名)