← 返回列表

AI-sarjan haastattelukysymys 11: Miten RAG:ia optimoidaan?

RAG:n optimointi ei ole yhden osa-alueen säätöä, vaan koko ketjun optimointiprosessi. Alla annan systemaattisia optimointistrategioita neljästä ulottuvuudesta: tietoindeksointi, haku, generointi ja arviointi, sekä liitän käytännön kokemuksia, joita voi mainita haastattelussa.


1. Tietoindeksointipuolen optimointi ("tietokannan" laadun parantaminen)

Tämä on helposti huomiotta jäävä mutta nopeimmin tuloksia tuova osa.

Säätökohta Ongelma Tarkka toimenpide Vaikutusmittari
Dokumentin jäsennys PDF:n taulukot, vuokaaviot jätetään huomiotta, tai teksti on sotkussa. Käytä parempia jäsennyskirjastoja (esim. unstructured, pypdf asettelun säilytystila); taulukoille käytä pandas-kirjastoa ja muunna ne Markdowniksi. Hakutarkkuus +5–15 %
Tekstin lohkokoko Liian pieni lohko menettää kontekstin (esim. "Hänen liikevaihtonsa kasvoi" - "hän" viittaus katoaa); liian suuri lohko lisää kohinaa. Kokeile eri lohkokokoja (256/512/768 tokenia), limitys 10–20 %; pitkille dokumenteille jaa semanttisten rajojen (kappaleet/otsikot) mukaan eikä kiinteän pituuden perusteella. Osumatarkkuus / uskollisuus
Metadatan lisääminen Osuma löytyy, mutta lähdettä tai aikaa ei voida jäljittää, tai tarvitaan alakohtaista suodatusta. Lisää jokaiselle lohkolle metadataa: source (tiedostonimi/URL), timestamp, page_num, doc_type. Käytä hakusuodattimia (esim. doc_type == 'legal'). Suodatuksen tarkkuus
Upotusmallin valinta Yleinen upotusmalli toimii huonosti erikoisaloilla (lääketiede, koodi, laki). Käytä alakohtaiseen tarpeeseen hienosäädettyjä malleja (BGE-large-zh, GTE-Qwen2-7B-instruct); tai hienosäädä oma upotusmalli (triplet loss -menetelmällä). Haussa MRR@10 +10–20 %

2. Hakupuolen optimointi ("kirjan selaamisen" tarkentaminen)

Haku määrää LLM:lle syötettävän "lähdemateriaalin" laadun.

Säätökohta Ongelma Tarkka toimenpide Vaikutus
Yhdistelmähaku Vektorihaku ei löydä tarkkoja termejä (esim. tuotemalli ABC-123), avainsanahaku ei ymmärrä synonyymejä. Käytä samanaikaisesti vektorihakua (semanttinen) ja BM25:ttä (avainsana), yhdistä painotuksella (esim. 0.7vektori + 0.3BM25) tai rerank-fuusiolla. Hakutarkkuus +10–25 %
Uudelleenjärjestäminen (Rerank) Vektoriotosten kärkitulokset eivät ole aina osuvimpia, 10. tulos saattaa olla paras. Käytä cross-encoder-mallia (esim. BGE-reranker-v2, Cohere Rerank) uudelleen pisteyttämään kandidaattijoukko (esim. 20 parasta) ja ota top-K. Osumatarkkuus paranee merkittävästi (etenkin top-1)
Kyselyn uudelleenkirjoitus Käyttäjän kysymys on epäselvä tai monivuoroisessa keskustelussa viittaus on epäselvä ("Mikä sen hinta on?"). Käytä LLM:ää muokkaamaan alkuperäinen kysymys hakuun sopivammaksi (esim. "Mikä on iPhone 15:n hinta?"); tai täydennä keskusteluhistorian avulla. Hakutarkkuus +5–15 %
HyDE Kysymys on liian lyhyt tai abstrakti (esim. "Kerro fotosynteesistä"), suora haku on tehoton. Anna LLM:n ensin tuottaa hypoteettinen vastaus, ja käytä tätä vastausta dokumenttien hakuun. Sopii avoimiin alueisiin, mutta ei tosiasiatarkkoihin kysymyksiin
Top-K -arvon säätö Liian pieni K saattaa jättää tärkeän tiedon pois; liian suuri K lisää token-kulutusta ja kohinaa. Kokeile K=3/5/10, tarkkaile hakutarkkuuden ja vastauksen uskollisuuden tasapainoa. Tehokkuuden ja tulosten välinen kompromissi

3. Generointipuolen optimointi (LLM:n hyödyntäminen lähdemateriaalista)

Vaikka haku olisi tarkka, huono kehote tai malli ei toimi.

Säätökohta Ongelma Tarkka toimenpide Vaikutus
Kehotesuunnittelu LLM jättää huomiotta hakutulokset tai keksii asioita. Anna selkeä ohje: "Vastaa vain alla olevan lähdemateriaalin perusteella. Jos materiaali ei riitä tai ei ole relevanttia, vastaa 'Ei tarpeeksi tietoa'." Lisää muutamia esimerkkejä siitä, miten lähteisiin viitataan. Uskollisuus +20–40 %
Kontekstin pakkaaminen Haettu sisältö on liian pitkä (ylittää mallin konteksti-ikkunan) tai sisältää paljon kohinaa. Käytä LLMLingua tai Valikoiva konteksti -pakkausta, säilytä olennaisimmat lauseet ennen LLM:lle lähettämistä. Vähentää tiedon menettämisen riskiä
LLM-mallin päivitys Pieni malli (7B) ei kykene monimutkaiseen päättelyyn tai muista pitkää kontekstia. Vaihda vahvempaan malliin (GPT-4o, Claude 3.5 Sonnet, Qwen2.5-72B). Päättelytarkkuus paranee huomattavasti
Virtaus ja lähteet Käyttäjä ei voi varmistaa vastauksen luotettavuutta. Anna LLM:n tuottaa [citation:1]-viittauksia, jotka vastaavat haettujen dokumenttien numeroita. Liitä taustalle alkuperäisen tekstin linkki. Käyttäjän luottamus + virheenkorjaus
Vastauksesta kieltäytymisen kalibrointi Malli keksii vastauksia, kun ei pitäisi, tai sanoo ei tiedä, kun pitäisi osata. Aseta samankaltaisuuskynnys: jos parhaan lohkon kosiniläheisyys kysymyksen kanssa on alle 0.7, kehota LLM:ää sanomaan "lähde ei ole relevantti". Hallusinaatioiden väheneminen

4. Arviointi ja iterointi (tiedä mihin säätää)

Ilman mittareita ei voi optimoida.

Säätökohta Toimenpide Mittari
Arviointijoukon luominen Valmistele 100–300 oikeaa käyttäjäkysymystä + oikea vastaus + oikea haettavan dokumentin ID. Kattaa eri vaikeustasot ja eri tarkoitukset.
Automaattinen arviointi Käytä RAGAS (uskollisuus, vastauksen relevanssi, kontekstin muistaminen) tai TruLens. Kolme ydintunnuslukua: uskollisuus, vastauksen relevanssi, kontekstin muistaminen.
Manuaalinen arviointi Poimi viikoittain 20 huonoa tapausta, analysoi virhetyyppi (haku epäonnistui / generointivirhe / tietokannan puute). Parannusprioriteettien järjestys.
A/B-testaus Jaa tuotantoympäristössä liikennettä eri hakustrategioille (esim. BM25 vs. yhdistelmähaku). Verkkomittarit: käyttäjätyytyväisyys, vastaamattomien kysymysten osuus.

5. Haastattelussa mainittavaa "käytännön kokemusta" (lisäpisteitä)

"Vastuullani olleessa RAG-projektissa alkuperäinen osumatarkkuus oli vain 67 %. Tein kolme asiaa:
1. Vaihdoin kiinteästä 1024 pituisesta lohkosta dynaamiseen semanttiseen jakamiseen (otsikon ja kappaleen mukaan), osumatarkkuus nousi 74 %:iin;
2. Lisäsin yhdistelmähaun (vektori + BM25) ja pienen rerank-mallin, osumatarkkuus nousi 83 %:iin;
3. Paransin kehotetta ja pakotin käyttämään [tietoa ei löytynyt], hallusinaatioiden määrä laski 22 %:sta alle 5 %:iin.

Lisäksi loimme jatkuvan arviointiputken: ennen jokaista muutosta ajamme RAGAS-pisteet 200 kysymykselle varmistaaksemme, ettei taantumaa tapahdu."


Lopuksi: Kattava RAG:n optimointisuunnitelma

Tietokerros ─→ Dokumenttien puhdistus, lohkojen optimointi, metadatan lisäys, alakohtainen upotus
Hakukerros ─→ Yhdistelmähaku, rerank, kyselyn uudelleenkirjoitus, HyDE, Top-K -säätö
Generointikerros ─→ Kehotteen tehostus, ohjeiden asetus, pakkaus, lähteet, kieltäytymiskynnys
Arviointikerros ─→ Arviointijoukko, RAGAS, manuaalinen analyysi, A/B-kokeet

评论

暂无已展示的评论。

发表评论(匿名)