Faida:
- Utekelezaji wa utafutaji wa mseto unaochanganya uteuzi wa juu-k na utafutaji wa kimantiki na wa maneno muhimu
- Kuongeza usahihi wa utafutaji wa kwanza kwa kupanga upya
- Kufanya maswali magumu kutafutwa zaidi kwa mbinu kama vile kubadilisha hoja na HyDE
Uligawanya hati vizuri na kuziweka kwenye hifadhidata ya vekta. Sasa kazi halisi: kuchota vipande vilivyofaa wakati mtumiaji anauliza swali. Hii inaitwa kurejesha na ndio uti wa mgongo wa ubora wa RAG. Kumbuka maneno "Ubora wa kurejesha = ubora wa RAG"; Kitengo hiki ni sanaa ya kuboresha ubora huo. Tutashughulikia mbinu za vitendo kutoka kwa uteuzi wa juu-k hadi utafutaji wa mseto, kutoka kwa kupanga upya hadi kubadilisha hoja.
Juu-k: Tutaleta Vipande Vingapi?
Mpangilio wa kimsingi: ni vipande ngapi (k) vya kurudi kutoka kwa utafutaji. Ukileta kidogo (k=1) kuna hatari kubwa ya kukosa kipande sahihi; Ikiwa utaongeza sana (k=20), itaongeza kelele kwa mfano na gharama ya ishara itaongezeka.
Tofautisha kati ya dhana mbili. Kumbuka: kiwango ambacho kipande sahihi ni kati ya zile zilizorejeshwa. Usahihi: kiwango ambacho kile kinachorejeshwa kinafaa. Kuongeza k huongeza kukumbuka lakini hupunguza usahihi. Lengo ni kusawazisha hayo mawili.
juu-k
Athari
hali inayofaa
1-3
Usahihi wa juu, hatari ya kukosa
Rahisi, maswali ya jibu moja
4-8
Mizani; matukio mengi
Mkuu wa kampuni RAG
10-20
Kukumbuka kwa juu, kelele huongezeka
Kwa kuorodheshwa tena (chini)
Kidokezo: Mchoro wa kawaida na wenye nguvu: leta kwa upana (k=20), kisha punguza kwa kuweka daraja upya (4 bora). Kwa njia hii hautakosa chochote na unatoa muktadha safi kwa mfano.
Utafutaji wa Mseto: Nguvu ya Utafutaji Mbili
Utafutaji wa kisemantiki (vekta) hunasa maana lakini hukosa vitu: msimbo kamili wa bidhaa ("XR-4471"), ufupisho adimu, jina sahihi, nambari ya toleo. Kwa kazi hizi zinazolingana kabisa, utafutaji wa maneno muhimu wa shule ya zamani-hasa algoriti ya kawaida inayoitwa BM25-ni nzuri sana.
Utafutaji wa mseto unachanganya hizi mbili: utafutaji wa maneno na maneno muhimu hufanya kazi, kuchanganya matokeo. Kwa hivyo, katika swali kama "Kipindi cha udhamini wa
Kuunganisha kwa kawaida hufanywa na RRF (Reciprocal Rank Fusion): wimbo ulio juu zaidi katika orodha zote mbili huja mbele.
# Urejeshaji mseto (dhana)sem = vector_search(swali, k=20) # meaningkey = bm25_search(swali, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # fuse the two, top 8
Kuweka daraja tena: Pasi ya Pili na Nadhifu
Simu ya kwanza inaweza kuwa ya haraka lakini isiyo na adabu. Kupanga upya alama ambazo watahiniwa walirejesha kwa utafutaji wa kwanza mmoja baada ya mwingine kwa kielelezo chenye nguvu zaidi (kwa kawaida ni kisimbaji cha njia tofauti - kielelezo kinachosoma swali na kifungu pamoja na kuashiria umuhimu) na kusogeza muhimu zaidi hadi juu.
Mantiki ni hii: utafutaji wa kwanza huteua idadi kubwa ya watahiniwa wa kurejeshwa (watahiniwa 20), mpangaji upya huchagua 4 bora zaidi kwa usahihi. Mbinu hii ya hatua mbili ni sahihi zaidi kuliko utafutaji wa hatua moja. Inagharimu ucheleweshaji fulani na usindikaji wa ziada; Faida ni ongezeko kubwa la ubora.
# Urejeshaji wa hatua mbili (watahiniwa) = utafutaji_mseto(swali, k=20) # pana, alama ya haraka = reranker.alama(swali, watahiniwa) # alama za umuhimu kwa kila muktadha wa mtahiniwa = lilipimwa.cheo()[:4] # 4 bora
Kubadilisha Hoja
Wakati mwingine tatizo haliko katika utafutaji, lakini katika swali lenyewe. Ikiwa mtumiaji atauliza "vipi kuhusu wafanyikazi wa mbali?" ', hii haiwezi kutafutwa peke yake (haijulikani ni nini kwa wafanyikazi wa mbali). Hapa kuna mbinu za kubadilisha hoja:
- Andika upya: Tumia historia ya mazungumzo kufanya swali liwe la pekee: "Ni nini wafanyakazi wa mbali wana haki ya likizo ya mwaka?"
- Hoja nyingi: Tengeneza misemo 3 tofauti ya swali moja, tafuta na zote, changanya matokeo. Maneno tofauti hupata vipande tofauti.
- HyDE (Upachikaji wa Hati za Dhahania): Kwanza chapisha "jibu linalowezekana" kwa kielelezo, kisha upachike na utafute jibu hilo la kuwazia. Jibu la kufikiria wakati mwingine hupatikana bora kwa sababu iko karibu kwa maneno na hati halisi.
# anuwai za hoja (dhana) = model.uret("Onyesha swali hili kwa njia 3 tofauti: " + swali)tum_sonuc = []kwa v katika vibadala: all_sonuc += vector_intermediate(v, k=6)context = umoja_na_order(tum_result)[:6]
Urejeshaji Dhaifu / Urejeshaji Wenye Nguvu
Dhaifu (hatua moja, semantiki pekee, k=3 isiyobadilika):
result = vector_search(swali, k=3)# Tatizo: msimbo wa bidhaa umekosa, hauwezi kuingiza sehemu sahihi ya 3 katika maswali magumu.
Yenye nguvu (mseto + upana + kuweka tena nafasi + ya hoja nyingi ikiwa ni lazima):
watahiniwa = mseto_search(andika upya(swali, zamani), k=20)muktadha = reranker.alama(swali, watahiniwa).kwanza(4)# Yote mawili yanayolingana na maana hunaswa; Inakwenda kwa mifano 4 bora.
Kesi Tatu Ndogo
Kesi ya 1 - Nambari ya bidhaa imetolewa. Utafutaji safi wa kimantiki kwenye timu ya usaidizi haukuweza kupata neno "RTX-9080" katika swali "kosa la dereva la RTX-9080"; Alikuwa akileta bidhaa nyingine zenye majina yanayofanana. Utafutaji wa mseto ulipoongezwa, ulinganishaji kamili wa msimbo ulitokea na kasi ya kurejesha makala sahihi iliongezeka kutoka 58% hadi 92%.
Kesi ya 2 - Tofauti ya kupanga upya. Msaidizi wa kisheria alikuwa akifanya kazi na k=5 lakini kipengee sahihi ni 7-10 mara nyingi. Alikuwa anakaa kwenye safu. Wakati k=20 + kuweka nafasi tena ilipoanzishwa, kiwango cha makala sahihi kuwa katika 3 bora kiliongezeka kutoka 61% hadi 94%; Muda wa kusubiri uliongezeka kwa 300ms pekee - maelewano yanayokubalika.
Kesi ya 3 - Swali la ufuatiliaji bila muktadha. Katika msaidizi wa HR, mtumiaji anauliza "vipi kuhusu wanaotumia muda?" Nilipouliza, mfumo ulileta sehemu zisizo na maana. Kwa kuandika upya swali (kuvuta muktadha wa "likizo ya mwaka" kutoka zamani na kuongeza "Wafanyakazi wa muda wana haki ya likizo ya kila mwaka"), kiwango cha jibu sahihi kiliongezeka kutoka 40% hadi 86%.
Makosa ya kawaida
- Kutegemea tu utafutaji wa kisemantiki: Nambari ya bidhaa, ufupisho, jina sahihi zimekosa; Ongeza mseto.
- Kuweka k ndogo sana: Kipande sahihi hakiwezi kuingia kwenye orodha; ifanye kuwa pana na ipunguze kwa cheo tena.
- Kamwe usifikirie kuorodhesha tena: Utafutaji wa kwanza ni mbaya; Pasi ya pili ya busara inaboresha ubora kwa kiasi kikubwa.
- Kutafuta maswali ya ufuatiliaji kama ilivyo: Swali lisilo na muktadha hutafuta lisilo na maana; andika upya.
- Kuongezeka kwa upofu k (bila kuweka tena cheo): Mfano umejaa kelele, majibu yamepotoshwa na gharama huongezeka.
Jihadharini: Kila mbinu huongeza gharama na kuchelewa. Hoja nyingi humaanisha utafutaji wa mara 3, kuweka upya cheo kunamaanisha simu ya ziada ya mfano. Anza na mseto rahisi + busara k kwanza; Pima na ongeza mbinu nzito pale inapohitajika. Kuongeza bila kipimo.
Kwa muhtasari
- Top-k ni usawa kati ya kukumbuka na usahihi; Kwa ujumla 4-8 ni mwanzo mzuri.
- Utafutaji wa mseto unachanganya utaftaji wa semantic na utaftaji wa neno kuu (BM25); Hurejesha ulinganifu kamili.
- Kupanga upya huwapa watahiniwa alama tena kutoka kwa utafutaji mpana wa awali kwa kutumia muundo thabiti na kuchagua walio bora zaidi.
- Kubadilisha hoja (kuandika upya, maswali mengi, HyDE) hufanya maswali magumu na yasiyo na muktadha kutafutwa.
- Muundo thabiti: uchotaji mpana → unganisha na mseto → finyu kwa kuweka tena cheo; lakini ongeza kila mbinu kwa kuipima.
Jukumu la maombi
Andaa maswali 6 magumu yenye data kutoka kwa vitengo vilivyotangulia: angalau 2 zinazohitaji uwiano kamili (msimbo wa bidhaa, ufupisho, tarehe), 2 semantic (mada sawa na maneno tofauti), maswali 2 ya ufuatiliaji bila muktadha. (1) Kwanza fikiria kila swali kama utafutaji kamili wa kisemantiki na uweke alama kwa mikono ni sehemu zipi zitatokea. (2) Tathmini tena maswali yale yale kwa mseto na uongezwe upya. (3) Andika upya maswali ya kufuatilia bila muktadha. Kumbuka katika muundo wa jedwali ni mbinu gani hufanya tofauti katika aina ya swali.
orodha ya ukaguzi
- [ ] Najua top-k ni usawa wa kukumbuka-usahihi na safu inayofaa ya kuanzia.
- [ ] Ninaweza kueleza kwa nini utafutaji wa mseto hurejesha ulinganifu kamili.
- [ ] Ninaweza kutumia mantiki ya hatua mbili ya kupanga upya (pana → smart nyembamba).
- [ ] Ninatambua hitaji la kuandika upya maswali ya ufuatiliaji bila muktadha.
- [ ] Ninathibitisha kuwa niliongeza mbinu nzito kwa kupima, si kwa kupima.