Unitate 4 / 11

Strategii de recuperare: Top-k, Hibrid, Re-clasificare

Câștiguri:

  • Implementarea căutării hibride care combină selecția top-k și căutarea semantică și prin cuvinte cheie
  • Creșterea preciziei primei căutări cu re-clasificare
  • Faceți întrebările dificile mai ușor de căutat cu tehnici precum transformarea interogărilor și HyDE

Ați distrus documentele frumos și le-ați pus în baza de date vectorială. Acum adevărata treabă: obținerea pieselor potrivite atunci când utilizatorul pune o întrebare. Aceasta se numește recuperare și este coloana vertebrală a calității RAG. Amintiți-vă de expresia „Calitate de regăsire = calitate RAG”; Această unitate este exact arta de a îmbunătăți această calitate. Vom acoperi tehnici practice de la selecția top-k la căutare hibridă, de la re-clasificare la transformarea interogărilor.

Top-k: Câte piese vom aduce?

Setarea cea mai de bază: câte piese (k) să returneze din căutare. Dacă aduceți mai puțin (k=1) există un risc mare de a rata piesa corectă; Dacă adăugați prea mult (k=20), acesta va adăuga zgomot modelului și costul simbolului va crește.

Distinge între două concepte. Reamintim: rata la care piesa corectă se află printre cele recuperate. Precizie: rata la care ceea ce este recuperat este relevant. Creșterea k crește reamintirea, dar scade precizia. Scopul este de a echilibra cele două.

sus-k

Impact

situatie potrivita

1-3

Precizie ridicată, risc de ratare

Întrebări simple, cu un singur răspuns

4-8

echilibru; majoritatea scenariilor

General corporatist RAG

10-20

Rechemare mai mare, zgomotul crește

Cu reclasificare (mai jos)

Sfat: model comun și puternic: obțineți larg (k=20), apoi îngustați cu re-clasificare (top 4). Astfel nu vei pierde nimic și dai context curat modelului.

Căutare hibridă: puterea a două căutări

Căutarea semantică (vectorală) captează sensul, dar ratează lucruri: codul complet al produsului ("XR-4471"), abreviere rară, nume propriu, număr de versiune. Pentru aceste sarcini de potrivire exactă, căutarea de cuvinte cheie de școală veche – în special algoritmul clasic numit BM25 – este foarte bună.

Căutarea hibridă combină cele două: atât căutările semantice, cât și căutările prin cuvinte cheie funcționează, combinând rezultatele. Astfel, într-o întrebare precum „Perioada de garanție a

Fuziunea se face de obicei cu RRF (Reciprocal Rank Fusion): piesa care este mai sus în ambele liste apare.

# Recuperare hibridă (conceptual) sem = căutare_vector(întrebare, k=20) # cheie sens = bm25_căutare(întrebare, k=20) # fullwordresult = rrf_merge(sem, cheie)[:8] # fuzionează cele două, top 8

Reclasare: al doilea și mai inteligent Pass

Primul apel poate fi rapid, dar nepoliticos. Reclasificarea punctajelor candidaților returnați de prima căutare unul câte unul cu un model mai puternic (de obicei un cross-encoder — un model care citește întrebarea și pasajul împreună și notează relevanța) și îi mută pe cei mai relevanți în partea de sus.

Logica este aceasta: prima căutare atribuie un număr mare de candidați pentru rechemare (20 de candidați), re-rankerul selectează cei mai buni 4 pentru precizie. Această abordare în două etape este mult mai precisă decât o căutare într-o singură etapă. Costă ceva întârziere și procesare suplimentară; Câștigul este o creștere semnificativă a calității.

# Candidați (conceptuali) de regăsire în două etape = căutare_hibridă(întrebare, k=20) # amplă, scor rapid = reranker.score(întrebare, candidați) # scor de relevanță pentru fiecare candidat context = rated.rank()[:4] # top 4

Transformarea interogării

Uneori problema nu este în căutare, ci în întrebarea în sine. Dacă utilizatorul întreabă „Dar lucrătorii la distanță?” ', acest lucru nu poate fi căutat singur (nu este clar ce este pentru lucrătorii la distanță). Iată tehnicile de transformare a interogărilor:

  • Rescrie: folosește istoricul conversațiilor pentru a face întrebarea autonomă: „Ce au dreptul lucrătorilor la distanță la concediu anual?”
  • Interogare multiplă: generați 3 expresii diferite ale aceleiași întrebări, căutați cu toate, combinați rezultatele. Cuvintele diferite găsesc piese diferite.
  • HyDE (Hypothetical Document Embeddings): Mai întâi imprimați un „răspuns posibil” la model, apoi încorporați și căutați acel răspuns imaginar. Răspunsul imaginar se găsește uneori mai bine pentru că este mai aproape în cuvinte de documentul real.

# Variante (conceptuale) cu mai multe interogări = model.uret("Exprima această întrebare în 3 moduri diferite: " + întrebare)tum_sonuc = []pentru v în variante: all_sonuc += vector_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]

Recuperare slabă / Recuperare puternică

Slab (o singură etapă, numai semantică, constantă k=3):

rezultat = căutare_vector(întrebare, k=3)# Problemă: codul produsului este ratat, nu poate introduce partea corectă a 3 la întrebările dificile.

Puternic (hibrid + widek + re-clasificare + interogare multiplă dacă este necesar):

candidates = hybrid_search(rewrite(intrebare, trecut), k=20)context = reranker.score(intrebare, candidați).first(4)# Atât potrivirea exactă, cât și semnificația sunt capturate; Merge la cele mai bune 4 modele.

Trei mini carcase

Cazul 1 — Codul produsului a scăpat. O căutare pură semantică pe o echipă de asistență nu a putut găsi „RTX-9080” textual la întrebarea „Eroare driver RTX-9080”; El aducea și alte produse cu nume similare. Când a fost adăugată căutarea hibridă, a avut loc potrivirea exactă a codului și rata de returnare a articolelor corecte a crescut de la 58% la 92%.

Cazul 2 — Diferența de reclasare. Un asistent juridic lucra cu k=5, dar elementul corect este 7-10 de cele mai multe ori. Stătea în rânduri. Când a fost introdus k=20 + re-clasificare, rata articolului corect aflat în top 3 a crescut de la 61% la 94%; Latența a crescut cu doar 300 ms - un compromis acceptabil.

Cazul 3 — Întrebare ulterioară fără context. Într-un asistent de resurse umane, utilizatorul întreabă „dar cu normă parțială?” Când am întrebat, sistemul a adus părți irelevante. Prin rescrierea interogării (trăgând contextul „concediu anual” din trecut și adăugând „Angajații cu normă parțială au dreptul la concediu anual”), rata de răspuns corect a crescut de la 40% la 86%.

Greșeli comune

  • Bazându-se exclusiv pe căutarea semantică: codul produsului, abrevierea, numele propriu sunt omise; Adăugați hibrid.
  • Menținerea k prea mic: piesa corectă nu poate intra în listă; fă-l lat și îngust-l cu re-rank.
  • Niciodată să nu te gândești la re-clasificare: prima căutare este nepoliticos; A doua trecere inteligentă îmbunătățește semnificativ calitatea.
  • Căutarea întrebărilor ulterioare așa cum este: O întrebare fără context caută fără sens; rescrie.
  • Creștere orbește k (fără re-clasificare): Modelul este plin de zgomot, răspunsul este distorsionat și costul crește.
Atenție: Fiecare tehnică adaugă costuri și întârzieri. Interogare multiplă înseamnă căutare de trei ori, reclasificare înseamnă apel suplimentar de model. Începeți cu hibrid simplu + k rezonabil mai întâi; Măsurați și adăugați tehnici grele acolo unde este cu adevărat necesar. Adăugarea fără măsurare.

Pe scurt

  • Top-k este echilibrul dintre reamintire și precizie; În general, 4-8 este un început bun.
  • Căutarea hibridă combină căutarea semantică cu căutarea prin cuvinte cheie (BM25); Recuperează potrivirile exacte.
  • Re-clasificarea recalifică candidații din căutarea inițială largă cu un model robust și îi selectează pe cei mai buni.
  • Transformarea interogărilor (rescriere, interogare multiplă, HyDE) face că întrebările dificile și fără context pot fi căutate.
  • Model puternic: aducere larg → îmbinare cu hibrid → îngust cu re-rankare; dar adăugați fiecare tehnică măsurând-o.

Sarcina de aplicare

Pregătește 6 întrebări dificile cu date din unitățile anterioare: cel puțin 2 care necesită potriviri exacte (cod produs, abreviere, dată), 2 semantice (același subiect cu cuvinte diferite), 2 întrebări ulterioare fără context. (1) Mai întâi gândiți-vă la fiecare întrebare ca la o căutare semantică pură și marcați manual care părți vor apărea. (2) Reevaluați aceleași întrebări cu hibrid și re-clasificare adăugate. (3) Rescrie întrebările ulterioare fără context. Notați într-o formă tabelară care tehnică face diferența în ce tip de întrebare.

lista de verificare

  • [ ] Știu că top-k este o balanță de precizie și un interval rezonabil de pornire.
  • [ ] Pot explica de ce căutarea hibridă recuperează potrivirile exacte.
  • [ ] Pot aplica logica în doi pași a reclasării (larg → îngust inteligent).
  • [ ] Recunosc necesitatea de a rescrie întrebările ulterioare fără context.
  • [ ] Confirm că am adăugat tehnici grele prin măsurare, nu prin măsurare.