Fitimet:
- Zbatimi i kërkimit hibrid që kombinon përzgjedhjen top-k dhe kërkimin semantik dhe fjalë kyçe
- Rritja e saktësisë së kërkimit të parë me rirenditje
- Bërja e pyetjeve të vështira më të kërkueshme me teknika të tilla si transformimi i pyetjeve dhe HyDE
Ju i grisni bukur dokumentet dhe i vendosët në bazën e të dhënave vektoriale. Tani puna e vërtetë: marrja e pjesëve të duhura kur përdoruesi bën një pyetje. Kjo quhet rikthim dhe është shtylla kurrizore e cilësisë RAG. Mbani mend shprehjen "Cilësia e rikthimit = cilësia RAG"; Kjo njësi është pikërisht arti i përmirësimit të asaj cilësie. Ne do të mbulojmë teknikat praktike nga përzgjedhja top-k tek kërkimi hibrid, nga rirenditja deri te transformimi i pyetjeve.
Top-k: Sa pjesë do të sjellim?
Cilësimi më themelor: sa pjesë (k) të kthehen nga kërkimi. Nëse sillni më pak (k=1) ekziston rreziku i lartë për të humbur pjesën e duhur; Nëse shtoni shumë (k=20), do të shtojë zhurmë në model dhe kostoja e tokenit do të rritet.
Të dallojë dy koncepte. Kujtoni: shkalla me të cilën pjesa e saktë është midis atyre të marra. Saktësia: shkalla me të cilën ajo që merret është e rëndësishme. Rritja e k rrit kujtesën, por ul saktësinë. Qëllimi është të balancohen të dyja.
top-k
Ndikimi
situatë e përshtatshme
1-3
Saktësia e lartë, rreziku i humbjes
Pyetje të thjeshta, me një përgjigje
4-8
Bilanci; shumica e skenarëve
RAG i përgjithshëm i korporatës
10-20
Kujtesa më e lartë, zhurma rritet
Me rirenditje (më poshtë)
Këshillë: Modeli i zakonshëm dhe i fuqishëm: merrni gjerësi (k=20), më pas ngushtojeni me rirenditje (4 në krye). Në këtë mënyrë nuk do të humbisni asgjë dhe i jepni kontekst të pastër modelit.
Kërkimi Hibrid: Fuqia e Dy Kërkimeve
Kërkimi semantik (vektorial) kap kuptimin, por i mungon gjërat: kodi i plotë i produktit ("XR-4471"), shkurtesa e rrallë, emri i duhur, numri i versionit. Për këto detyra me përputhje të saktë, kërkimi i fjalëve kyçe të shkollës së vjetër - veçanërisht algoritmi klasik i quajtur BM25 - është shumë i mirë.
Kërkimi hibrid kombinon të dyja: kërkimet semantike dhe fjalë kyçe funksionojnë, duke kombinuar rezultatet. Kështu, në një pyetje të tillë si "Periudha e garancisë së
Bashkimi zakonisht bëhet me RRF (Reciprocal Rank Fusion): del përpara pista që është më e lartë në të dyja listat.
# Rikthim hibrid (konceptual)sem = vektor_kërkim(pyetje, k=20) # keye kuptimi = bm25_search(pyetje, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # bashko të dyja, 8 më të lartë
Ri-renditja: Kalimi i dytë dhe më i zgjuar
Thirrja e parë mund të jetë e shpejtë, por e vrazhdë. Rirenditja vlerëson kandidatët e kthyer nga kërkimi i parë një nga një me një model më të fuqishëm (zakonisht një kodues i kryqëzuar - një model që lexon pyetjen dhe pasazhin së bashku dhe shënon rëndësinë) dhe i zhvendos ato më të rëndësishmet në krye.
Logjika është kjo: kërkimi i parë cakton një numër të madh kandidatësh për tërheqje (20 kandidatë), rirenditësi zgjedh 4 më të mirët për saktësi. Kjo qasje me dy faza është shumë më e saktë se një kërkim me një fazë. Kushton pak vonesë dhe përpunim shtesë; Fitimi është një rritje e konsiderueshme në cilësi.
# Kandidatët (konceptualë) rikthim me dy faza = kërkim_hibrid(pyetje, k=20) # i gjerë, rezultat i shpejtë = reranker.score(pyetje, kandidatë) # pikë përkatëse për secilin kontekst kandidat = vlerësuar.rank()[:4] # 4 më të lartë
Transformimi i pyetjes
Ndonjëherë problemi nuk është në kërkim, por në vetë pyetjen. Nëse përdoruesi pyet "po në lidhje me punëtorët në distancë?" ', kjo nuk mund të kërkohet vetëm (nuk është e qartë se çfarë është për punëtorët në distancë). Këtu janë teknikat e transformimit të pyetjeve:
- Rishkruani: Përdorni historikun e bisedave për ta bërë pyetjen më vete: "Çfarë kanë të drejtë punonjësit në distancë për pushim vjetor?"
- Pyetje me shumë pyetje: Gjeneroni 3 shprehje të ndryshme të së njëjtës pyetje, kërkoni me të gjitha, kombinoni rezultatet. Fjalë të ndryshme gjejnë pjesë të ndryshme.
- HyDE (Hypothetical Document Embeddings): Fillimisht printoni një "përgjigje të mundshme" për modelin, më pas futni dhe kërkoni atë përgjigje imagjinare. Përgjigja imagjinare ndonjëherë gjendet më mirë sepse është më afër me fjalë dokumentit real.
# Variante (konceptuale) me shumë pyetje = model.uret("Shprehe këtë pyetje në 3 mënyra të ndryshme: " + pyetje)tum_sonuc = []për v në variante: all_sonuc += vector_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]
Rikthim i dobët / Rikthim i fortë
E dobët (me një fazë, vetëm semantika, konstante k=3):
rezultat = vector_search(pyetje, k=3)# Problem: kodi i produktit mungon, nuk mund të futet saktë pjesa 3 në pyetjet e vështira.
I fuqishëm (hibrid + widek + rirenditje + shumë pyetje nëse është e nevojshme):
kandidatët = hybrid_search(rishkruaj (pyetje, e kaluara), k=20) kontekst = reranker.score(pyetje, kandidatë).first(4)# Përputhen dhe kuptimi i saktë; Shkon te 4 modelet më të mira.
Tre Mini Rastet
Rasti 1 — Kodi i produktit iku. Një kërkim i pastër semantik në një ekip mbështetës nuk mundi të gjente "RTX-9080" fjalë për fjalë në pyetjen "gabim drejtuesi RTX-9080"; Ai po sillte produkte të tjera me emra të ngjashëm. Kur u shtua kërkimi hibrid, ndodhi përputhja e saktë e kodit dhe shkalla e kthimit të artikujve të saktë u rrit nga 58% në 92%.
Rasti 2 - Diferenca e rirenditjes. Një paralegal punonte me k=5 por artikulli i saktë është 7-10 shumicën e kohës. Ai po qëndronte në radhët. Kur u prezantua k=20 + rirenditja, shkalla e renditjes së artikullit të saktë në top 3 u rrit nga 61% në 94%; Vonesa u rrit me vetëm 300 ms - një kompromis i pranueshëm.
Rasti 3 — Pyetje vijuese pa kontekst. Në një asistent të burimeve njerëzore, përdoruesi pyet "po për punonjësit me kohë të pjesshme?" Kur pyeta, sistemi solli pjesë të parëndësishme. Duke rishkruar pyetjen (duke tërhequr kontekstin "leje vjetore" nga e kaluara dhe duke shtuar "Punonjësit me kohë të pjesshme kanë të drejtë për pushim vjetor"), përqindja e përgjigjeve të sakta u rrit nga 40% në 86%.
Gabimet e zakonshme
- Duke u mbështetur vetëm në kërkimin semantik: Kodi i produktit, shkurtesa, emri i duhur mungojnë; Shtoni hibrid.
- Mbajtja e k shumë e vogël: Pjesa e duhur nuk mund të hyjë në listë; bëje të gjerë dhe ngushtoje me rirenditje.
- Asnjëherë duke mos menduar për rirenditjen: Kërkimi i parë është i vrazhdë; Kalimi i dytë inteligjent përmirëson ndjeshëm cilësinë.
- Kërkimi i pyetjeve vijuese siç është: Një pyetje pa kontekst kërkon të pakuptimta; rishkruaj.
- Rritje verbërisht k (pa rirenditje): Modeli është i mbushur me zhurmë, përgjigja është e shtrembëruar dhe kostoja rritet.
Kujdes: Çdo teknikë shton koston dhe vonesën. Pyetja e shumëfishtë do të thotë kërkim 3-fish, rirenditja nënkupton thirrje shtesë të modelit. Filloni me hibrid të thjeshtë + k të arsyeshëm së pari; Matni dhe shtoni teknika të rënda aty ku nevojiten vërtet. Shtimi pa matje.
Në përmbledhje
- Top-k është ekuilibri midis kujtimit dhe saktësisë; Në përgjithësi 4-8 është një fillim i mirë.
- Kërkimi hibrid kombinon kërkimin semantik me kërkimin me fjalë kyçe (BM25); Rikuperon ndeshjet e sakta.
- Rirenditja rivlerëson kandidatët nga kërkimi i gjerë fillestar me një model të fortë dhe zgjedh më të mirët.
- Transformimi i pyetjeve (rishkrimi, shumë pyetje, HyDE) i bën pyetjet e vështira dhe pa kontekst të kërkueshme.
- Modeli i fortë: tërheqje e gjerë → bashkim me hibrid → i ngushtë me rirenditje; por shtoni secilën teknikë duke e matur atë.
Detyra e aplikimit
Përgatitni 6 pyetje të vështira me të dhëna nga njësitë e mëparshme: të paktën 2 që kërkojnë përputhje të saktë (kodi i produktit, shkurtesa, data), 2 semantike (e njëjta temë me fjalë të ndryshme), 2 pyetje vijuese pa kontekst. (1) Së pari mendoni për secilën pyetje si një kërkim të pastër semantik dhe shënoni manualisht se cilat pjesë do të dalin. (2) Rivlerësoni të njëjtat pyetje me shtimin hibrid dhe rirenditje. (3) Rishkruani pyetjet vijuese pa kontekst. Vini re në formë tabelare se cila teknikë bën dallimin në cilin lloj pyetjeje.
listë kontrolli
- [ ] Unë e di se top-k është një ekuilibër i saktësisë së tërheqjes dhe një gamë e arsyeshme fillestare.
- [ ] Mund të shpjegoj pse kërkimi hibrid rikthen përputhjet e sakta.
- [ ] Mund të aplikoj logjikën me dy hapa të rirenditjes (gjerë → i zgjuar i ngushtë).
- [ ] Unë e njoh nevojën për të rishkruar pyetjet vijuese pa kontekst.
- [ ] Unë konfirmoj se kam shtuar teknika të rënda duke matur, jo duke matur.