Nyereség:
- Hibrid keresés megvalósítása, amely ötvözi a top-k kijelölést, valamint a szemantikus és kulcsszavas keresést
- Az első keresés pontosságának növelése átsorolással
- A nehéz kérdések kereshetőbbé tétele olyan technikákkal, mint a lekérdezésátalakítás és a HyDE
Szépen felaprítottad a dokumentumokat és betette a vektoros adatbázisba. Most az igazi munka: a megfelelő darabok lekérése, amikor a felhasználó kérdést tesz fel. Ezt hívják visszakeresésnek, és ez a RAG minőség gerince. Emlékezzen a "Letöltés minősége = RAG minősége" kifejezésre; Ez az egység pontosan a minőség javításának művészete. Kitérünk a gyakorlati technikákra a top-k kiválasztástól a hibrid keresésig, az átsorolástól a lekérdezés átalakításáig.
Top-k: Hány darabot hozunk?
A legalapvetőbb beállítás: hány darabot (k) kell visszaadni a keresésből. Ha kevesebbet hoz (k=1), nagy a kockázata, hogy hiányzik a megfelelő darab; Ha túl sokat (k=20) ad hozzá, az zajt ad a modellnek, és megnő a token költsége.
Két fogalom megkülönböztetése. Visszahívás: az arány, amellyel a megfelelő darab a visszakeresettek között van. Precizitás: az a sebesség, amellyel a letöltött tartalmak relevánsak. A k növelése növeli a visszahívást, de csökkenti a pontosságot. A cél a kettő egyensúlyba hozása.
top-k
Hatás
megfelelő helyzet
1-3
Nagy pontosság, kihagyás veszélye
Egyszerű, egyválaszos kérdések
4-8
Egyenleg; a legtöbb forgatókönyv
Általános vállalati RAG
10-20
Magasabb visszahívás, növekszik a zaj
Újrasorolással (lent)
Tipp: Gyakori és erőteljes minta: húzd le szélesre (k=20), majd szűkítsd át a rangsorolást (az első 4). Így nem marad le semmiről, és tiszta kontextust ad a modellnek.
Hibrid keresés: Két keresés ereje
A szemantikus (vektoros) keresés megragadja a jelentést, de kihagy valamit: teljes termékkód ("XR-4471"), ritka rövidítés, tulajdonnév, verziószám. Ezekhez a pontos egyezésű feladatokhoz a régimódi kulcsszavas keresés – különösen a klasszikus BM25 nevű algoritmus – nagyon jó.
A hibrid keresés egyesíti a kettőt: a szemantikus és a kulcsszavas keresés is működik, kombinálva az eredményeket. Így egy olyan kérdésben, mint például a „Jótállási idő a
Az egyesítés általában RRF-vel (Reciprocal Rank Fusion) történik: a mindkét listán magasabban lévő sáv jön elő.
# Hibrid lekérdezés (fogalmi)sem = vector_search(kérdés, k=20) # jelentéskulcs = bm25_search(question, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # egyesítse a kettőt, top 8
Újrasorolás: Második és Okosabb Pass
Az első hívás gyors, de durva lehet. Az újrarangsorolás egyenként pontozza az első keresés során visszaadott jelölteket egy erősebb modell segítségével (általában egy keresztkódoló – egy olyan modell, amely együtt olvassa el a kérdést és a részt, és pontozza a relevanciát), és a legrelevánsabbakat helyezi a csúcsra.
A logika a következő: az első keresés nagy számú jelöltet rendel visszahívásra (20 jelöltet), az újrarangozó kiválasztja a legjobb 4-et a pontosság érdekében. Ez a kétlépcsős megközelítés sokkal pontosabb, mint az egylépcsős keresés. Ez némi késedelembe és további feldolgozásba kerül; A nyereség a minőség jelentős növekedése.
# Kétlépcsős lekérdezés (koncepcionális) jelöltek = hibrid_keresés(kérdés, k=20) # széles, gyorspontszám = reranker.score(kérdés, jelöltek) # relevancia pontszám minden jelölt kontextusához = értékelt.rang()[:4] # top 4
A lekérdezés átalakítása
Néha nem a keresésben van a probléma, hanem magában a kérdésben. Ha a felhasználó megkérdezi, hogy „mi a helyzet a távoli dolgozókkal?” ', ezt nem lehet egyedül keresni (nem világos, hogy mi a távmunkások számára). Íme a lekérdezés-átalakítási technikák:
- Újraírás: Használja a beszélgetési előzményeket a kérdés önállóvá tételéhez: "Mire jogosultak a távoli dolgozók éves szabadságra?"
- Több lekérdezés: generáljon 3 különböző kifejezést ugyanarra a kérdésre, keressen mindegyikkel, kombinálja az eredményeket. A különböző szavak különböző darabokat találnak.
- HyDE (Hypotetic Document Beágyazás): Először nyomtasson egy „lehetséges választ” a modellre, majd ágyazza be és keresse meg azt a képzeletbeli választ. A képzeletbeli válasz néha jobb, mert szavakban közelebb áll a valódi dokumentumhoz.
# Multi-query (conceptual)variants = model.uret("Kérdés kifejezése 3 különböző módon: " + kérdés)tum_sonuc = []v-re változatokban: all_sonuc += vector_intermediate(v, k=6)context = szingular_and_order(tum_result)[:6]
Gyenge visszakeresés / Erős visszakeresés
Gyenge (egyfokozatú, csak szemantika, konstans k=3):
result = vector_search(question, k=3)# Probléma: a termék kódja kimaradt, nehéz kérdésekben nem lehet helyesen beírni a 3. részt.
Hatékony (hibrid + widek + átsorolás + szükség esetén többszörös lekérdezés):
jelöltek = hibrid_keresés(átírás(kérdés, múlt), k=20)context = reranker.score(kérdés, jelöltek).first(4)# Mind a pontos egyezés, mind a jelentés rögzítésre kerül; A 4 legjobb modellre vonatkozik.
Három mini tok
1. eset – A termékkód megtisztítva. Egy ügyfélszolgálati csoport tisztán szemantikai keresése nem találta szó szerint az „RTX-9080” szót az „RTX-9080 illesztőprogram-hiba” kérdésben; Más termékeket is hozott hasonló néven. A hibrid keresés hozzáadásával pontos kódegyeztetés történt, és a helyes cikkek visszaküldésének aránya 58%-ról 92%-ra nőtt.
2. eset – Újrasorolási különbség. Egy jogvédő k=5-tel dolgozott, de a helyes tétel legtöbbször 7-10. A sorokban maradt. A k=20 + átsorolás bevezetésével a helyes cikk első 3-ba kerülésének aránya 61%-ról 94%-ra nőtt; A késleltetés mindössze 300 ms-mal nőtt – ez elfogadható kompromisszum.
3. eset – Következő kérdés kontextus nélkül. A HR-asszisztensben a felhasználó megkérdezi, hogy „mi a helyzet a részmunkaidősekkel?” Amikor megkérdeztem, a rendszer lényegtelen részeket hozott. A lekérdezés átírásával (az "éves szabadság" kontextusának a múltból való kiemelésével és a "Részmunkaidős munkavállalók éves szabadságra jogosultak" hozzáadásával) a helyes válaszok aránya 40%-ról 86%-ra nőtt.
Gyakori hibák
- Kizárólag a szemantikai keresésre támaszkodva: a termék kódja, rövidítése, tulajdonnév hiányzik; Adjunk hozzá hibridet.
- K túl kicsi tartása: A megfelelő darab nem kerülhet be a listába; szélesítsd és szűkítsd át rangsorolással.
- Soha nem gondol az újrarangsorolásra: Az első keresés durva; A második smart pass jelentősen javítja a minőséget.
- Következő kérdések keresése úgy, ahogy van: A kontextus nélküli kérdés értelmetleneket keres; átírni.
- Vakon növekszik a k (átsorolás nélkül): A modell tele van zajjal, a válasz torzul és a költségek nőnek.
Vigyázat: Minden technika költséget és késést növel. A többszörös lekérdezés háromszoros keresést jelent, az újrarangsorolás további modellhívást jelent. Kezdje egyszerű hibrid + ésszerű k először; Mérjen és adjon hozzá nehéz technikákat, ahol valóban szükséges. Hozzáadás mérés nélkül.
Összefoglalva
- A Top-k az egyensúly az előhívás és a pontosság között; Általában a 4-8 jó kezdet.
- A hibrid keresés a szemantikus keresést a kulcsszavas (BM25) kereséssel kombinálja; Helyreállítja a pontos egyezéseket.
- Az átsorolás egy robusztus modell segítségével újrapontozza a jelölteket a széles kezdeti keresésből, és kiválasztja a legjobbakat.
- A lekérdezések átalakítása (újraírás, több lekérdezés, HyDE) a nehéz és kontextusmentes kérdéseket kereshetővé teszi.
- Erős mintázat: széles lehívás → összeolvad a hibriddel → szűk az áthelyezéssel; de az egyes technikákat méréssel adjuk hozzá.
Pályázati feladat
Készítsen 6 nehéz kérdést az előző egységek adataiból: legalább 2 pontos egyezést igénylő (termékkód, rövidítés, dátum), 2 szemantikai (ugyanaz a téma különböző szavakkal), 2 utólagos kérdés kontextus nélkül. (1) Először tekints minden kérdést tisztán szemantikai keresésnek, és manuálisan jelöld meg, hogy melyik rész fog megjelenni. (2) Értékelje újra ugyanazokat a kérdéseket hibrid és új rangsor hozzáadásával. (3) Írja át a következő kérdéseket kontextus nélkül. Jegyezze fel táblázatos formában, hogy melyik technika melyik kérdéstípusban tesz különbséget.
ellenőrző lista
- [ ] Tudom, hogy a top-k egy visszahívás-precíziós mérleg és egy ésszerű kiindulási tartomány.
- [ ] Meg tudom magyarázni, hogy a hibrid keresés miért állítja vissza a pontos egyezéseket.
- [ ] Alkalmazni tudom az átsorolás kétlépcsős logikáját (széles → okos szűk).
- [ ] Felismerem, hogy az utókérdéseket kontextus nélkül kell átírni.
- [ ] Megerősítem, hogy a nehéz technikákat méréssel adtam hozzá, nem méréssel.