Mga nadagdag:
- Pagpapatupad ng hybrid na paghahanap na pinagsasama ang top-k na seleksyon at semantic at paghahanap ng keyword
- Ang pagtaas ng katumpakan ng unang paghahanap sa muling pagraranggo
- Ginagawang mas mahahanap ang mahihirap na tanong gamit ang mga diskarte tulad ng pagbabago ng query at HyDE
Pinutol mo nang mabuti ang mga dokumento at inilagay ang mga ito sa database ng vector. Ngayon ang tunay na gawain: pagkuha ng mga tamang piraso kapag nagtanong ang user. Ito ay tinatawag na retrieval at ang backbone ng kalidad ng RAG. Tandaan ang pariralang "Retrieval quality = RAG quality"; Ang yunit na ito ay eksakto ang sining ng pagpapabuti ng kalidad na iyon. Sasaklawin namin ang mga praktikal na diskarte mula sa top-k na pagpili hanggang sa hybrid na paghahanap, mula sa muling pagraranggo hanggang sa pagbabago ng query.
Top-k: Ilang Piraso ang Dadalhin Natin?
Ang pinakapangunahing setting: ilang piraso (k) ang ibabalik mula sa paghahanap. Kung magdadala ka ng mas kaunti (k=1) may mataas na panganib na mawala ang tamang piraso; Kung magdadagdag ka ng sobra (k=20), magdaragdag ito ng ingay sa modelo at tataas ang halaga ng token.
Matukoy ang pagkakaiba sa pagitan ng dalawang konsepto. Tandaan: ang rate kung saan ang tamang piraso ay kabilang sa mga nakuha. Katumpakan: ang rate kung saan ang nakuha ay may kaugnayan. Ang pagtaas ng k ay nagpapataas ng recall ngunit nababawasan ang katumpakan. Ang layunin ay balansehin ang dalawa.
top-k
Epekto
angkop na sitwasyon
1-3
Mataas na katumpakan, panganib ng miss
Simple, isang sagot na mga tanong
4-8
Balanse; karamihan sa mga senaryo
Pangkalahatang corporate RAG
10-20
Mas mataas na recall, tumataas ang ingay
Sa muling pagraranggo (sa ibaba)
Tip: Karaniwan at makapangyarihang pattern: i-fetch wide (k=20), pagkatapos ay paliitin na may re-ranking (top 4). Sa ganitong paraan hindi ka makaligtaan ng anuman at magbibigay ka ng malinis na konteksto sa modelo.
Hybrid Search: Ang Kapangyarihan ng Dalawang Paghahanap
Nakukuha ng semantic (vector) na paghahanap ang kahulugan ngunit nakakaligtaan ang mga bagay: buong code ng produkto ("XR-4471"), bihirang pagdadaglat, tamang pangalan, numero ng bersyon. Para sa mga eksaktong tugmang gawain na ito, ang paghahanap ng keyword sa lumang paaralan—lalo na ang klasikong algorithm na tinatawag na BM25—ay napakahusay.
Pinagsasama ng hybrid na paghahanap ang dalawa: parehong gumagana ang mga paghahanap sa semantiko at keyword, pinagsasama ang mga resulta. Kaya, sa isang tanong tulad ng "panahon ng warranty ng
Karaniwang ginagawa ang pagsasama-sama gamit ang RRF (Reciprocal Rank Fusion): ang track na mas mataas sa parehong listahan ay lumalabas.
# Hybrid retrieval (conceptual)sem = vector_search(question, k=20) # meaningkey = bm25_search(question, k=20) # fullwordresult = rrf_merge(sem, key)[:8] # fuse the two, top 8
Muling pagraranggo: Pangalawa at Smarter Pass
Ang unang tawag ay maaaring mabilis ngunit bastos. Ang muling pagraranggo ay nagbibigay ng marka sa mga kandidato na ibinalik ng unang paghahanap nang paisa-isa gamit ang isang mas makapangyarihang modelo (karaniwan ay isang cross-encoder — isang modelo na nagbabasa ng tanong at ang sipi nang magkasama at nagbibigay ng marka ng kaugnayan) at inililipat ang mga pinakanauugnay sa itaas.
Ang lohika ay ito: ang unang paghahanap ay nagtatalaga ng isang malaking bilang ng mga kandidato para sa pagpapabalik (20 mga kandidato), ang re-ranker ay pipili ng pinakamahusay na 4 para sa katumpakan. Ang dalawang yugtong diskarte na ito ay mas tumpak kaysa sa isang solong yugto ng paghahanap. Nagkakahalaga ito ng ilang pagkaantala at karagdagang pagproseso; Ang pakinabang ay isang makabuluhang pagtaas sa kalidad.
# Two-stage retrieval (conceptual)candidates = hybrid_search(question, k=20) # broad, quickscore = reranker.score(question, candidates) # relevance score para sa bawat kandidato context = rated.rank()[:4] # top 4
Pagbabago ng Query
Minsan ang problema ay wala sa paghahanap, ngunit sa tanong mismo. Kung tatanungin ng user ang "paano ang mga malalayong manggagawa?" ', hindi ito mahahanap nang mag-isa (hindi malinaw kung ano ang para sa mga malalayong manggagawa). Narito ang mga diskarte sa pagbabago ng query:
- Muling isulat: Gamitin ang kasaysayan ng pag-uusap para gawin ang tanong na nakapag-iisa: "Ano ang karapatan ng mga malalayong manggagawa sa taunang bakasyon?"
- Multi-query: Bumuo ng 3 magkakaibang expression ng parehong tanong, maghanap sa lahat ng mga ito, pagsamahin ang mga resulta. Ang iba't ibang salita ay nakakahanap ng iba't ibang piraso.
- HyDE (Hypothetical Document Embeddings): Mag-print muna ng "posibleng sagot" sa modelo, pagkatapos ay i-embed at hanapin ang haka-haka na sagot na iyon. Ang haka-haka na sagot kung minsan ay mas maganda dahil mas malapit ito sa mga salita sa totoong dokumento.
# Multi-query (conceptual)variants = model.uret("Ipahayag ang tanong na ito sa 3 magkakaibang paraan: " + tanong)tum_sonuc = []para sa v sa mga variant: all_sonuc += vector_intermediate(v, k=6)context = singular_and_order(tum_result)[:6]
Mahinang Pagkuha / Malakas na Pagbawi
Mahina (iisang yugto, semantika lamang, pare-pareho ang k=3):
resulta = vector_search(tanong, k=3)# Problema: napalampas ang code ng produkto, hindi maipasok ang tamang bahagi 3 sa mahihirap na tanong.
Makapangyarihan (hybrid + widek + re-ranking + multi-query kung kinakailangan):
candidates = hybrid_search(rewrite(question, past), k=20)context = reranker.score(question, candidates).first(4)# Parehong eksaktong tugma at kahulugan ay nakunan; Napupunta ito sa pinakamahusay na 4 na modelo.
Tatlong Mini Case
Case 1 — Na-escape ang code ng produkto. Ang isang purong semantic na paghahanap sa isang support team ay hindi mahanap ang "RTX-9080" verbatim sa tanong na "RTX-9080 driver error"; Siya ay nagdadala ng iba pang mga produkto na may katulad na mga pangalan. Nang idinagdag ang hybrid na paghahanap, naganap ang eksaktong pagtutugma ng code at tumaas ang rate ng pagbabalik ng mga tamang artikulo mula 58% hanggang 92%.
Kaso 2 — Pagkakaiba sa muling pagraranggo. Ang isang paralegal ay nagtatrabaho sa k=5 ngunit ang tamang aytem ay 7-10 sa halos lahat ng oras. Nanatili siya sa hanay. Noong ipinakilala ang k=20 + re-ranking, ang rate ng tamang artikulo na nasa nangungunang 3 ay tumaas mula 61% hanggang 94%; Tumaas lang ng 300ms ang latency — isang katanggap-tanggap na kompromiso.
Case 3 — Follow-up na tanong na walang konteksto. Sa isang HR assistant, ang user ay nagtatanong ng "kumusta naman ang mga part-timer?" Nang tanungin ko, ang sistema ay nagdala ng mga hindi nauugnay na bahagi. Sa pamamagitan ng muling pagsulat ng query (pagkuha ng kontekstong "taunang bakasyon" mula sa nakaraan at pagdaragdag ng "Ang mga part-time na empleyado ay may karapatan sa taunang bakasyon"), ang tamang rate ng sagot ay tumaas mula 40% hanggang 86%.
Mga karaniwang pagkakamali
- Umaasa lamang sa semantic na paghahanap: Ang code ng produkto, pagdadaglat, tamang pangalan ay hindi nakuha; Magdagdag ng hybrid.
- Pagpapanatiling k masyadong maliit: Ang tamang piraso ay hindi makapasok sa listahan; gawin itong malapad at paliitin ito na may re-rank.
- Hindi kailanman iniisip ang tungkol sa muling pagraranggo: Ang unang paghahanap ay bastos; Ang pangalawang smart pass ay makabuluhang nagpapabuti sa kalidad.
- Paghahanap ng mga follow-up na tanong gaya ng: Ang isang tanong na walang konteksto ay naghahanap ng walang kabuluhan; muling isulat.
- Walang bulag na pagtaas ng k (nang walang muling pagraranggo): Ang modelo ay napuno ng ingay, ang tugon ay nabaluktot at ang gastos ay tumataas.
Mag-ingat: Ang bawat pamamaraan ay nagdaragdag ng gastos at pagkaantala. Ang ibig sabihin ng multi-query ay 3-fold na paghahanap, ang muling pagraranggo ay nangangahulugan ng karagdagang tawag sa modelo. Magsimula sa simpleng hybrid + makatwirang k muna; Sukatin at magdagdag ng mabibigat na pamamaraan kung saan talagang kailangan. Pagdaragdag nang hindi sinusukat.
Sa buod
- Ang Top-k ay ang balanse sa pagitan ng recall at precision; Sa pangkalahatan, ang 4-8 ay isang magandang simula.
- Pinagsasama ng hybrid na paghahanap ang semantikong paghahanap sa paghahanap ng keyword (BM25); Nagre-recover ng mga eksaktong tugma.
- Ang muling pagraranggo ay muling nagbibigay ng marka sa mga kandidato mula sa malawak na paunang paghahanap gamit ang isang matatag na modelo at pinipili ang mga pinakamahusay.
- Ang pagbabagong-anyo ng query (rewriting, multi-query, HyDE) ay ginagawang mahahanap ang mga tanong na mahirap at walang konteksto.
- Malakas na pattern: malawak na pagkuha → pagsamahin sa hybrid → makitid na may re-rank; ngunit idagdag ang bawat pamamaraan sa pamamagitan ng pagsukat nito.
Gawain ng aplikasyon
Maghanda ng 6 na mahihirap na tanong na may data mula sa mga nakaraang unit: hindi bababa sa 2 na nangangailangan ng eksaktong tugma (code ng produkto, pagdadaglat, petsa), 2 semantiko (parehong paksa na may magkaibang mga salita), 2 follow-up na tanong na walang konteksto. (1) Isipin muna ang bawat tanong bilang isang purong semantic na paghahanap at manu-manong markahan kung aling mga bahagi ang lalabas. (2) Muling suriin ang parehong mga tanong na may idinagdag na hybrid at muling pagraranggo. (3) Isulat muli ang mga follow-up na tanong nang walang konteksto. Tandaan sa isang tabular form kung aling pamamaraan ang gumagawa ng pagkakaiba sa kung aling uri ng tanong.
checklist
- [ ] Alam kong ang top-k ay isang recall-precision na balanse at isang makatwirang panimulang hanay.
- [ ] Maaari kong ipaliwanag kung bakit nabawi ng hybrid na paghahanap ang mga eksaktong tugma.
- [ ] Maaari kong ilapat ang dalawang-hakbang na lohika ng muling pagraranggo (malawak → matalinong makitid).
- [ ] Kinikilala ko ang pangangailangan na muling isulat ang mga follow-up na tanong nang walang konteksto.
- [ ] Kinukumpirma ko na nagdagdag ako ng mabibigat na pamamaraan sa pamamagitan ng pagsukat, hindi sa pagsukat.