നേട്ടങ്ങൾ:
- ടോപ്പ്-കെ സെലക്ഷനും സെമാൻ്റിക്, കീവേഡ് സെർച്ചും സംയോജിപ്പിക്കുന്ന ഹൈബ്രിഡ് തിരയൽ നടപ്പിലാക്കുന്നു
- റീ-റാങ്കിംഗിനൊപ്പം ആദ്യ തിരയലിൻ്റെ കൃത്യത വർദ്ധിപ്പിക്കുന്നു
- ക്വറി ട്രാൻസ്ഫോർമേഷൻ, ഹൈഡിഇ പോലുള്ള ടെക്നിക്കുകൾ ഉപയോഗിച്ച് ബുദ്ധിമുട്ടുള്ള ചോദ്യങ്ങൾ കൂടുതൽ തിരയാനാകുന്നതാക്കുന്നു
നിങ്ങൾ പ്രമാണങ്ങൾ നന്നായി കീറി വെക്റ്റർ ഡാറ്റാബേസിൽ ഇട്ടു. ഇപ്പോൾ യഥാർത്ഥ ജോലി: ഉപയോക്താവ് ഒരു ചോദ്യം ചോദിക്കുമ്പോൾ ശരിയായ ഭാഗങ്ങൾ ലഭ്യമാക്കുക. ഇതിനെ വീണ്ടെടുക്കൽ എന്ന് വിളിക്കുന്നു, ഇത് RAG ഗുണനിലവാരത്തിൻ്റെ നട്ടെല്ലാണ്. "വീണ്ടെടുക്കൽ ഗുണനിലവാരം = RAG നിലവാരം" എന്ന വാചകം ഓർക്കുക; ഈ യൂണിറ്റ് കൃത്യമായി ആ ഗുണനിലവാരം മെച്ചപ്പെടുത്തുന്നതിനുള്ള കലയാണ്. ടോപ്പ്-കെ സെലക്ഷൻ മുതൽ ഹൈബ്രിഡ് സെർച്ച് വരെ, റീ-റാങ്കിംഗ് മുതൽ അന്വേഷണ രൂപാന്തരം വരെയുള്ള പ്രായോഗിക സാങ്കേതിക വിദ്യകൾ ഞങ്ങൾ കവർ ചെയ്യും.
ടോപ്പ്-കെ: ഞങ്ങൾ എത്ര കഷണങ്ങൾ കൊണ്ടുവരും?
ഏറ്റവും അടിസ്ഥാന ക്രമീകരണം: തിരയലിൽ നിന്ന് എത്ര കഷണങ്ങൾ (k) തിരികെ നൽകണം. നിങ്ങൾ കുറച്ച് കൊണ്ടുവരുകയാണെങ്കിൽ (k=1) ശരിയായ ഭാഗം നഷ്ടപ്പെടാനുള്ള സാധ്യത കൂടുതലാണ്; നിങ്ങൾ വളരെയധികം (k=20) ചേർത്താൽ, അത് മോഡലിന് ശബ്ദം നൽകുകയും ടോക്കൺ ചെലവ് വർദ്ധിക്കുകയും ചെയ്യും.
രണ്ട് ആശയങ്ങൾ തമ്മിൽ വേർതിരിക്കുക. ഓർക്കുക: വീണ്ടെടുത്തവയിൽ ശരിയായ ഭാഗത്തിൻ്റെ നിരക്ക്. പ്രിസിഷൻ: വീണ്ടെടുക്കുന്ന നിരക്ക് പ്രസക്തമാണ്. കെ കൂടുന്നത് തിരിച്ചുവിളിക്കൽ വർദ്ധിപ്പിക്കും എന്നാൽ കൃത്യത കുറയുന്നു. രണ്ടും സന്തുലിതമാക്കുകയാണ് ലക്ഷ്യം.
ടോപ്പ്-കെ
ആഘാതം
അനുയോജ്യമായ സാഹചര്യം
1-3
ഉയർന്ന കൃത്യത, നഷ്ടപ്പെടാനുള്ള സാധ്യത
ലളിതവും ഒറ്റ ഉത്തരവുമായ ചോദ്യങ്ങൾ
4-8
ബാലൻസ്; മിക്ക സാഹചര്യങ്ങളും
ജനറൽ കോർപ്പറേറ്റ് RAG
10-20
ഉയർന്ന തിരിച്ചുവിളിക്കൽ, ശബ്ദം വർദ്ധിക്കുന്നു
റീ-റാങ്കിംഗിനൊപ്പം (ചുവടെ)
നുറുങ്ങ്: പൊതുവായതും ശക്തവുമായ പാറ്റേൺ: വീതി (k=20) നേടുക, തുടർന്ന് റീ-റാങ്കിംഗിനൊപ്പം ഇടുങ്ങിയത് (മുകളിൽ 4). ഇതുവഴി നിങ്ങൾക്ക് ഒന്നും നഷ്ടമാകില്ല, കൂടാതെ നിങ്ങൾ മോഡലിന് വൃത്തിയുള്ള സന്ദർഭം നൽകുന്നു.
ഹൈബ്രിഡ് തിരയൽ: രണ്ട് തിരയലുകളുടെ ശക്തി
സെമാൻ്റിക് (വെക്റ്റർ) തിരയൽ അർത്ഥം പിടിച്ചെടുക്കുന്നു, പക്ഷേ കാര്യങ്ങൾ നഷ്ടപ്പെടുത്തുന്നു: പൂർണ്ണ ഉൽപ്പന്ന കോഡ് ("XR-4471"), അപൂർവ ചുരുക്കെഴുത്ത്, ശരിയായ പേര്, പതിപ്പ് നമ്പർ. ഈ കൃത്യമായ പൊരുത്ത ടാസ്ക്കുകൾക്ക്, പഴയ-സ്കൂൾ കീവേഡ് സെർച്ചിംഗ്-പ്രത്യേകിച്ച് BM25 എന്ന ക്ലാസിക് അൽഗോരിതം-വളരെ നല്ലതാണ്.
ഹൈബ്രിഡ് തിരയൽ ഇവ രണ്ടും സംയോജിപ്പിക്കുന്നു: സെമാൻ്റിക്, കീവേഡ് തിരയലുകൾ പ്രവർത്തിക്കുന്നു, ഫലങ്ങൾ സംയോജിപ്പിക്കുന്നു. അതിനാൽ, "വാറൻ്റി കാലയളവ്" പോലുള്ള ഒരു ചോദ്യത്തിൽ
സാധാരണയായി RRF (റെസിപ്രോക്കൽ റാങ്ക് ഫ്യൂഷൻ) ഉപയോഗിച്ചാണ് ലയിപ്പിക്കുന്നത്: രണ്ട് ലിസ്റ്റുകളിലും ഉയർന്ന ട്രാക്ക് മുന്നോട്ട് വരുന്നു.
# ഹൈബ്രിഡ് വീണ്ടെടുക്കൽ (സങ്കല്പം) സെം = വെക്റ്റർ_സെർച്ച് (ചോദ്യം, കെ = 20) # അർത്ഥകീ = ബിഎം25_സെർച്ച് (ചോദ്യം, കെ = 20) # ഫുൾവേഡ് റിസൾട്ട് = rrf_merge (സെം, കീ)[:8] # രണ്ടെണ്ണം ഫ്യൂസ് ചെയ്യുക, ടോപ്പ് 8
റീ-റാങ്കിംഗ്: രണ്ടാമത്തേതും മികച്ചതുമായ പാസ്
ആദ്യ കോൾ വേഗമേറിയതും എന്നാൽ പരുഷവുമായേക്കാം. കൂടുതൽ ശക്തമായ മോഡൽ (സാധാരണയായി ഒരു ക്രോസ്-എൻകോഡർ - ചോദ്യവും ഖണ്ഡികയും ഒരുമിച്ച് വായിച്ച് പ്രസക്തി സ്കോർ ചെയ്യുന്ന ഒരു മോഡൽ) ഉപയോഗിച്ച് ആദ്യ തിരയലിലൂടെ ഓരോന്നായി തിരിച്ചെത്തിയ ഉദ്യോഗാർത്ഥികളെ വീണ്ടും റാങ്ക് ചെയ്യുന്നു, കൂടാതെ ഏറ്റവും പ്രസക്തമായവയെ മുകളിലേക്ക് നീക്കുന്നു.
ലോജിക് ഇതാണ്: ആദ്യത്തെ തിരയൽ തിരിച്ചുവിളിക്കാൻ ധാരാളം ഉദ്യോഗാർത്ഥികളെ നിയോഗിക്കുന്നു (20 ഉദ്യോഗാർത്ഥികൾ), റീ-റാങ്കർ കൃത്യതയ്ക്കായി മികച്ച 4 തിരഞ്ഞെടുക്കുന്നു. ഈ രണ്ട്-ഘട്ട സമീപനം ഒറ്റ-ഘട്ട തിരയലിനേക്കാൾ വളരെ കൃത്യമാണ്. ഇതിന് കുറച്ച് കാലതാമസവും അധിക പ്രോസസ്സിംഗും ആവശ്യമാണ്; ഗുണമേന്മയിൽ ഗണ്യമായ വർദ്ധനവാണ് നേട്ടം.
# രണ്ട്-ഘട്ട വീണ്ടെടുക്കൽ (സങ്കൽപ്പം) സ്ഥാനാർത്ഥികൾ = ഹൈബ്രിഡ്_സെർച്ച് (ചോദ്യം, k=20) # ബ്രോഡ്, ക്വിക്ക്സ്കോർ = reranker.സ്കോർ (ചോദ്യം, കാൻഡിഡേറ്റുകൾ) # ഓരോ കാൻഡിഡേറ്റ് സന്ദർഭത്തിനും പ്രസക്തമായ സ്കോർ = റേറ്റഡ്. റാങ്ക്()[:4] # ടോപ്പ് 4
ചോദ്യം രൂപാന്തരപ്പെടുത്തുന്നു
ചിലപ്പോൾ പ്രശ്നം തിരയലിൽ അല്ല, ചോദ്യത്തിൽ തന്നെ. “വിദൂര തൊഴിലാളികളുടെ കാര്യമോ?” എന്ന് ഉപയോക്താവ് ചോദിച്ചാൽ ', ഇത് ഒറ്റയ്ക്ക് അന്വേഷിക്കാൻ കഴിയില്ല (വിദൂര തൊഴിലാളികൾക്ക് എന്താണെന്ന് വ്യക്തമല്ല). ചോദ്യ രൂപാന്തരീകരണ ടെക്നിക്കുകൾ ഇതാ:
- തിരുത്തിയെഴുതുക: ചോദ്യം ഒറ്റപ്പെട്ടതാക്കാൻ സംഭാഷണ ചരിത്രം ഉപയോഗിക്കുക: "വിദൂര തൊഴിലാളികൾക്ക് വാർഷിക അവധിക്ക് എന്ത് അർഹതയുണ്ട്?"
- മൾട്ടി-ക്വറി: ഒരേ ചോദ്യത്തിൻ്റെ 3 വ്യത്യസ്ത പദപ്രയോഗങ്ങൾ സൃഷ്ടിക്കുക, അവയെല്ലാം ഉപയോഗിച്ച് തിരയുക, ഫലങ്ങൾ സംയോജിപ്പിക്കുക. വ്യത്യസ്ത വാക്കുകൾ വ്യത്യസ്ത ഭാഗങ്ങൾ കണ്ടെത്തുന്നു.
- ഹൈഡെ (ഹൈപ്പോതെറ്റിക്കൽ ഡോക്യുമെൻ്റ് എംബഡിംഗ്സ്): ആദ്യം മോഡലിലേക്ക് ഒരു "സാധ്യമായ ഉത്തരം" പ്രിൻ്റ് ചെയ്യുക, തുടർന്ന് ഉൾച്ചേർത്ത് ആ സാങ്കൽപ്പിക ഉത്തരത്തിനായി തിരയുക. സാങ്കൽപ്പിക ഉത്തരം ചിലപ്പോൾ മികച്ചതായി കണ്ടെത്താം, കാരണം അത് യഥാർത്ഥ പ്രമാണവുമായി വാക്കുകളിൽ അടുത്താണ്.
# Multi-query (conceptual) variants = model.uret("ഈ ചോദ്യം 3 വ്യത്യസ്ത രീതികളിൽ പ്രകടിപ്പിക്കുക: " + ചോദ്യം)tum_sonuc = []വകഭേദങ്ങളിലെ v-യ്ക്ക്: all_sonuc += vector_intermediate(v, k=6) സന്ദർഭം = ഏകവചന_ആൻഡ്_ഓർഡർ(tum_result)[:6]
ദുർബലമായ വീണ്ടെടുക്കൽ / ശക്തമായ വീണ്ടെടുക്കൽ
ദുർബലമായ (ഏക ഘട്ടം, അർത്ഥശാസ്ത്രം മാത്രം, സ്ഥിരമായ k=3):
result = vector_search(question, k=3)# പ്രശ്നം: ഉൽപ്പന്ന കോഡ് നഷ്ടപ്പെട്ടു, ബുദ്ധിമുട്ടുള്ള ചോദ്യങ്ങളിൽ ശരിയായ ഭാഗം 3 നൽകാൻ കഴിയില്ല.
ശക്തമായത് (ഹൈബ്രിഡ് + വൈഡ്ക് + റീ-റാങ്കിംഗ് + ആവശ്യമെങ്കിൽ മൾട്ടി-ക്വറി):
സ്ഥാനാർത്ഥികൾ = hybrid_search(rewrite(question, past), k=20)context = reranker.score(question, candidates).first(4)# കൃത്യമായ പൊരുത്തവും അർത്ഥവും പിടിച്ചെടുക്കുന്നു; ഇത് മികച്ച 4 മോഡലുകളിലേക്ക് പോകുന്നു.
മൂന്ന് മിനി കേസുകൾ
കേസ് 1 - ഉൽപ്പന്ന കോഡ് രക്ഷപ്പെട്ടു. "RTX-9080 ഡ്രൈവർ പിശക്" എന്ന ചോദ്യത്തിൽ "RTX-9080" എന്നത് ഒരു പിന്തുണാ ടീമിലെ ശുദ്ധമായ സെമാൻ്റിക് തിരയലിന് കണ്ടെത്താൻ കഴിഞ്ഞില്ല; സമാന പേരുകളുള്ള മറ്റ് ഉൽപ്പന്നങ്ങൾ അദ്ദേഹം കൊണ്ടുവന്നു. ഹൈബ്രിഡ് തിരയൽ ചേർത്തപ്പോൾ, കൃത്യമായ കോഡ് പൊരുത്തപ്പെടുത്തൽ സംഭവിച്ചു, ശരിയായ ലേഖനങ്ങൾ തിരികെ നൽകുന്നതിൻ്റെ നിരക്ക് 58% ൽ നിന്ന് 92% ആയി വർദ്ധിച്ചു.
കേസ് 2 - വീണ്ടും റാങ്കിംഗ് വ്യത്യാസം. ഒരു പാരാലീഗൽ k=5 ഉപയോഗിച്ച് പ്രവർത്തിച്ചിരുന്നു, എന്നാൽ ശരിയായ ഇനം മിക്കപ്പോഴും 7-10 ആണ്. അദ്ദേഹം നിരയിൽ തുടരുകയായിരുന്നു. k=20 + റീ-റാങ്കിംഗ് അവതരിപ്പിച്ചപ്പോൾ, ആദ്യത്തെ 3-ൽ ഉള്ള ശരിയായ ലേഖനത്തിൻ്റെ നിരക്ക് 61% ൽ നിന്ന് 94% ആയി വർദ്ധിച്ചു; ലേറ്റൻസി 300 മി.എസ് മാത്രം വർദ്ധിച്ചു - സ്വീകാര്യമായ വിട്ടുവീഴ്ച.
കേസ് 3 - സന്ദർഭമില്ലാതെ ഫോളോ-അപ്പ് ചോദ്യം. ഒരു എച്ച്ആർ അസിസ്റ്റൻ്റിൽ, ഉപയോക്താവ് ചോദിക്കുന്നു "പാർട്ട്-ടൈമർമാരുടെ കാര്യമോ?" ഞാൻ ചോദിച്ചപ്പോൾ സിസ്റ്റം അപ്രസക്തമായ ഭാഗങ്ങൾ കൊണ്ടുവന്നു. ചോദ്യം തിരുത്തിയെഴുതുന്നതിലൂടെ (പണ്ടത്തെ "വാർഷിക ലീവ്" സന്ദർഭം പിൻവലിച്ച് "പാർട്ട് ടൈം ജീവനക്കാർക്ക് വാർഷിക അവധിക്ക് അർഹതയുണ്ട്" എന്ന് ചേർത്ത്), ശരിയായ ഉത്തര നിരക്ക് 40% ൽ നിന്ന് 86% ആയി വർദ്ധിച്ചു.
സാധാരണ തെറ്റുകൾ
- സെമാൻ്റിക് തിരയലിൽ മാത്രം ആശ്രയിക്കുന്നു: ഉൽപ്പന്ന കോഡ്, ചുരുക്കെഴുത്ത്, ശരിയായ പേര് എന്നിവ നഷ്ടമായി; ഹൈബ്രിഡ് ചേർക്കുക.
- k വളരെ ചെറുതായി സൂക്ഷിക്കുന്നു: ശരിയായ ഭാഗത്തിന് പട്ടികയിൽ പ്രവേശിക്കാൻ കഴിയില്ല; അത് വീതിയും ഇടുങ്ങിയതും ആക്കുക.
- റീ-റാങ്കിംഗിനെക്കുറിച്ച് ഒരിക്കലും ചിന്തിക്കുന്നില്ല: ആദ്യ തിരയൽ പരുഷമാണ്; രണ്ടാമത്തെ സ്മാർട്ട് പാസ് ഗുണനിലവാരം ഗണ്യമായി മെച്ചപ്പെടുത്തുന്നു.
- തുടർചോദ്യങ്ങൾക്കായി തിരയുന്നത് ഇപ്രകാരമാണ്: സന്ദർഭമില്ലാത്ത ഒരു ചോദ്യം അർത്ഥശൂന്യമായത് തിരയുന്നു; മാറ്റിയെഴുതുക.
- അന്ധമായി വർദ്ധിക്കുന്ന k (വീണ്ടും റാങ്ക് ഇല്ലാതെ): മോഡൽ ശബ്ദത്താൽ നിറഞ്ഞിരിക്കുന്നു, പ്രതികരണം വികലമാവുകയും ചെലവ് വർദ്ധിക്കുകയും ചെയ്യുന്നു.
സൂക്ഷിക്കുക: ഓരോ സാങ്കേതികവിദ്യയും ചെലവും കാലതാമസവും ചേർക്കുന്നു. മൾട്ടി-ക്വറി എന്നാൽ 3-ഫോൾഡ് സെർച്ച്, റീ-റാങ്കിംഗ് എന്നാൽ അധിക മോഡൽ കോൾ എന്നാണ് അർത്ഥമാക്കുന്നത്. ആദ്യം ലളിതമായ ഹൈബ്രിഡ് + ന്യായമായ k ഉപയോഗിച്ച് ആരംഭിക്കുക; ശരിക്കും ആവശ്യമുള്ളിടത്ത് ഹെവി ടെക്നിക്കുകൾ അളക്കുകയും ചേർക്കുകയും ചെയ്യുക. അളക്കാതെ ചേർക്കുന്നു.
ചുരുക്കത്തിൽ
- തിരിച്ചുവിളിയും കൃത്യതയും തമ്മിലുള്ള സന്തുലിതാവസ്ഥയാണ് ടോപ്പ്-കെ; പൊതുവെ 4-8 നല്ല തുടക്കമാണ്.
- ഹൈബ്രിഡ് തിരയൽ സെമാൻ്റിക് തിരയൽ കീവേഡ് (BM25) തിരയലുമായി സംയോജിപ്പിക്കുന്നു; കൃത്യമായ പൊരുത്തങ്ങൾ വീണ്ടെടുക്കുന്നു.
- റീ-റാങ്കിംഗ് ശക്തമായ ഒരു മോഡൽ ഉപയോഗിച്ച് വിശാലമായ പ്രാരംഭ തിരയലിൽ നിന്ന് സ്ഥാനാർത്ഥികളെ വീണ്ടും സ്കോർ ചെയ്യുകയും മികച്ചവ തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്നു.
- ചോദ്യ പരിവർത്തനം (റീറൈറ്റിംഗ്, മൾട്ടി-ക്വറി, ഹൈഡെ) ബുദ്ധിമുട്ടുള്ളതും സന്ദർഭ രഹിതവുമായ ചോദ്യങ്ങളെ തിരയാൻ കഴിയുന്നതാക്കുന്നു.
- ശക്തമായ പാറ്റേൺ: ബ്രോഡ് ഫെച്ച് → ഹൈബ്രിഡുമായി ലയിപ്പിക്കുക → റീ-റാങ്കിനൊപ്പം ഇടുങ്ങിയത്; എന്നാൽ ഓരോ വിദ്യയും അളന്ന് ചേർക്കുക.
ആപ്ലിക്കേഷൻ ടാസ്ക്
മുമ്പത്തെ യൂണിറ്റുകളിൽ നിന്നുള്ള ഡാറ്റ ഉപയോഗിച്ച് ബുദ്ധിമുട്ടുള്ള 6 ചോദ്യങ്ങൾ തയ്യാറാക്കുക: കുറഞ്ഞത് 2 കൃത്യമായ പൊരുത്തങ്ങൾ ആവശ്യമാണ് (ഉൽപ്പന്ന കോഡ്, ചുരുക്കെഴുത്ത്, തീയതി), 2 സെമാൻ്റിക് (വ്യത്യസ്ത വാക്കുകളുള്ള ഒരേ വിഷയം), സന്ദർഭം കൂടാതെ 2 ഫോളോ-അപ്പ് ചോദ്യങ്ങൾ. (1) ആദ്യം ഓരോ ചോദ്യവും ഒരു ശുദ്ധമായ സെമാൻ്റിക് തിരയലായി കരുതുകയും ഏതൊക്കെ ഭാഗങ്ങൾ വരുമെന്ന് സ്വമേധയാ അടയാളപ്പെടുത്തുകയും ചെയ്യുക. (2) ഹൈബ്രിഡ്, റീ-റാങ്കിംഗ് എന്നിവ ചേർത്ത് അതേ ചോദ്യങ്ങൾ വീണ്ടും വിലയിരുത്തുക. (3) സന്ദർഭമില്ലാതെ തുടർന്നുള്ള ചോദ്യങ്ങൾ തിരുത്തിയെഴുതുക. ഏത് ചോദ്യ തരത്തിൽ ഏത് സാങ്കേതികതയാണ് വ്യത്യാസം വരുത്തുന്നതെന്ന് ഒരു പട്ടിക രൂപത്തിൽ ശ്രദ്ധിക്കുക.
ചെക്ക്ലിസ്റ്റ്
- ടോപ്പ്-കെ ഒരു തിരിച്ചുവിളിക്കൽ-പ്രിസിഷൻ ബാലൻസും ന്യായമായ ആരംഭ ശ്രേണിയും ആണെന്ന് എനിക്കറിയാം.
- [ ] ഹൈബ്രിഡ് തിരയൽ കൃത്യമായ പൊരുത്തങ്ങൾ വീണ്ടെടുക്കുന്നത് എന്തുകൊണ്ടാണെന്ന് എനിക്ക് വിശദീകരിക്കാൻ കഴിയും.
- [ ] എനിക്ക് റീ-റാങ്കിംഗിൻ്റെ രണ്ട്-ഘട്ട യുക്തി പ്രയോഗിക്കാൻ കഴിയും (ബ്രോഡ് → സ്മാർട്ട് ഇടുങ്ങിയത്).
- [ ] സന്ദർഭം കൂടാതെ തുടർന്നുള്ള ചോദ്യങ്ങൾ തിരുത്തിയെഴുതേണ്ടതിൻ്റെ ആവശ്യകത ഞാൻ തിരിച്ചറിയുന്നു.
- [ ] ഞാൻ ഹെവി ടെക്നിക്കുകൾ ചേർത്തത് അളക്കുന്നതിലൂടെയാണെന്ന് ഞാൻ സ്ഥിരീകരിക്കുന്നു, അളക്കുന്നതിലൂടെയല്ല.